package dk.thoerup.hibertest1; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Restrictions; public class EmployeeDAO { @SuppressWarnings("unchecked") public List getAll() { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx = session.beginTransaction(); // Dummy Transcaction Criteria c = session.createCriteria(Employee.class); java.util.List list = c.list(); tx.rollback(); //since no changes was made, just as well rollback session.close(); return list; } public void saveEmployee(Employee emp) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); Transaction tx = session.beginTransaction(); //session.save(emp); persist could be used here session.persist(emp); tx.commit(); //don't close if we're using getCurrentSession //session.close(); } public void updateEmployee(Employee emp) { Session session = HibernateUtil.getSessionFactory().openSession(); Transaction tx = session.beginTransaction(); session.update(emp); tx.commit(); session.close(); } @SuppressWarnings("unchecked") public List getEmployeesByName(String name) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); Transaction tx = session.beginTransaction(); Criteria c = session.createCriteria(Employee.class); c.add( Restrictions.ilike("name", name, MatchMode.ANYWHERE) ); List emps = c.list(); tx.rollback(); return emps; } public Employee getEmployeeById(int id) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); Transaction tx = session.beginTransaction(); Criteria c = session.createCriteria(Employee.class); c.add( Restrictions.eq("id", id)); Employee emp = (Employee) c.uniqueResult(); tx.rollback(); return emp; } public void deleteEmployee(Employee emp) { Session session = HibernateUtil.getSessionFactory().getCurrentSession(); Transaction tx = session.beginTransaction(); session.delete(emp); tx.commit(); } }