Package com.ettrema.examples.db.domain

Source Code of com.ettrema.examples.db.domain.VehicleDao

package com.ettrema.examples.db.domain;

import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import org.hibernate.Query;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.classic.Session;

/**
*
* @author brad
*/
public class VehicleDao {

    private final SessionFactory sessionFactory;
    private long nextId;

    public VehicleDao( SessionFactory sessionFactory ) {
        this.sessionFactory = sessionFactory;
    }

    public Set<String> getAllVehicleMakes() {
        Session sess = sessionFactory.openSession();
        Query query = sess.createQuery( "SELECT distinct  v.vehicleMake FROM Vehicle v" );
        List list = query.list();
        Set<String> makes = new LinkedHashSet<String>();
        for( Object o : list ) {
            String m = (String) o;
            makes.add( m );
        }
        return makes;
    }

    public void deleteAll() {
        Session sess = sessionFactory.openSession();
        Query query = sess.createQuery( "DELETE FROM Vehicle v" );
        query.executeUpdate();
    }

    public Vehicle add( Vehicle v ) {
        v.setId( nextId++ );
        Session sess = sessionFactory.openSession();
        Transaction t = sess.beginTransaction();
        sess.save( v );
        sess.flush();
        t.commit();


        return v;
    }

    public List<Vehicle> getAllVehicles() {
        Session sess = sessionFactory.openSession();
        List list = sess.createQuery( "SELECT v FROM Vehicle v" ).list();
        List<Vehicle> vehicles = new ArrayList<Vehicle>();
        for( Object o : list ) {
            vehicles.add( (Vehicle) o );
        }
        return vehicles;
    }

    public List<Vehicle> getVehiclesByMake( String make ) {
        Session sess = sessionFactory.openSession();
        List list = sess.createQuery( "SELECT v FROM Vehicle v WHERE v.vehicleMake = '" + make + "'" ).list();
        List<Vehicle> vehicles = new ArrayList<Vehicle>();
        for( Object o : list ) {
            vehicles.add( (Vehicle) o );
        }
        return vehicles;
    }

    public void update( Vehicle vehicle ) {
        Session sess = sessionFactory.openSession();
        Transaction t = sess.beginTransaction();
        sess.saveOrUpdate( vehicle );
        t.commit();
    }

    public void delete( Vehicle vehicle ) {
        Session sess = sessionFactory.openSession();
        Transaction t = sess.beginTransaction();
        sess.delete( vehicle);
        t.commit();
    }
}
TOP

Related Classes of com.ettrema.examples.db.domain.VehicleDao

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.