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;
@Repository
public 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;
}
});
}
}
hibernate dao demo
最新推荐文章于 2024-09-29 19:21:13 发布