public class HibernateDao extends HibernateDaoSupport
public List find(final String hql, final int offset, final int pageSize) {
List list = this.getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
List result = session.createQuery(hql).setFirstResult(offset).setMaxResults(pageSize).list();
return result;
}
});
return list;
}
}和下面这个
public class HibernateDao extends HibernateDaoSupport
public List find(final String hql, final int offset, final int pageSize) {
            return getSession().createQuery(hql).setFirstResult(offset).setMaxResults(pageSize).list();
}
}
这两种写法有啥差别么?

解决方案 »

  1.   

    一个直接拿到session
    一个自己获取session别的没区别
      

  2.   

    List list = this.getHibernateTemplate().executeFind(new HibernateCallback()){}
    有区别,其实通过getHibernateTemplate().executeFind(new HibernateCallback())这个方法来查找在这里如果有错就使用Hibernate中的事务回滚,下面的也可以但是简化到了一些而已,如果你经常用上面的来编写的话,就会更深入的了解到Hibernate