hibernate dao demo

来源:互联网 发布:淘宝黑莓哪家好 编辑:程序博客网 时间:2024/06/07 14:20
package com.scottwong.dao;import java.util.List;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.criterion.DetachedCriteria;import org.hibernate.criterion.Restrictions;import org.springframework.orm.hibernate3.HibernateCallback;import org.springframework.stereotype.Repository;import com.scottwong.bean.Employee;@Repositorypublic class EmployeeDao extends BaseDao {private static final Log log = LogFactory.getLog(EmployeeDao.class);public void save(Employee transientInstance) {log.info("saving Employee instance");try {getHibernateTemplate().save(transientInstance);log.info("save successful");} catch (RuntimeException re) {log.error("save failed", re);throw re;}}public void delete(Employee persistentInstance) {log.debug("deleting Employee instance");try {getHibernateTemplate().delete(persistentInstance);log.info("delete successful");} catch (RuntimeException re) {log.error("delete failed", re);throw re;}}public void update(Employee transientInstance) {log.info("update Employee instance");try {getHibernateTemplate().update(transientInstance);getHibernateTemplate().flush();log.info("update successful");} catch (RuntimeException re) {log.error("update failed", re);throw re;}}@SuppressWarnings("unchecked")public List<Employee> findAllEmployees() {log.info("finding all Employee instances");try {String queryString = "from Employee";return getHibernateTemplate().find(queryString);} catch (RuntimeException re) {log.error("find all failed", re);throw re;}}public Employee findById(int id) {log.info("getting Employee instance with id: " + id);try {Employee instance = (Employee) getHibernateTemplate().get(Employee.class, id);return instance;} catch (RuntimeException re) {log.error("get failed", re);throw re;}}public List findByExample(Employee instance) {log.debug("finding Employee instance by example");try {List results = getHibernateTemplate().findByExample(instance);log.info("find by example successful, result size: "+ results.size());return results;} catch (RuntimeException re) {log.error("find by example failed", re);throw re;}}public List findByProperty(String propertyName, Object value) {log.info("finding Employee instance with property: " + propertyName+ ", value: " + value);try {String queryString = "from Employee as model where model."+ propertyName + "= ?";return getHibernateTemplate().find(queryString, value);} catch (RuntimeException re) {log.error("find by property name failed", re);throw re;}}@SuppressWarnings("unchecked")public List<Employee> findAll() {return (List<Employee>) this.getHibernateTemplate().findByCriteria(DetachedCriteria.forClass(Employee.class));}@SuppressWarnings("unchecked")public List<Employee> findByHQL(final int id, final String name) { return (List<Employee>) this.getHibernateTemplate().execute(new HibernateCallback(){public Object doInHibernate(Session session) throws HibernateException{ List result = session.createCriteria(Employee.class)                 .add(Restrictions.ge("employeeId", id))                 .add(Restrictions.like("employeeName", "%"+name+"%"))                 .list();   return result; } });}@SuppressWarnings("unchecked")public List<Employee> findEmployeesByemployeeName(final String name){  return (List<Employee>) this.getHibernateTemplate().execute(new HibernateCallback(){public Object doInHibernate(Session session) throws HibernateException{ List<Employee> result = session.createCriteria(Employee.class)                 .add(Restrictions.like("employeeName", name+"%"))                 .list();   return result; } });}}