hibernate回调一般什么情况需要用

来源:百度知道 编辑:UC知道 时间:2024/08/23 10:40:36
HibernateCallback,回调一般什么情况需要用

当HibernateTemplate对象的save,delete等方法满足不了你的需求时,就使用回调方法了。

回调实际就是一种事件触发模式,
一般的用法是进行分页处理,

不过一般不赞成在持久层用复杂的模式机制,因为你会将业务压抑在持久层,而不是业务层,
如果你做项目,分页可以单独封装一个类,这样业务逻辑很清楚.

public List queryByHQL(final String hql,final PageBean page)
{
try {
List list = super.getHibernateTemplate().find(hql);

if( page!=null&&list.size()!=0 ){
list = getHibernateTemplate().executeFind(
new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult((page.getCurPage()-1)*page.getRowsPerPage());
query.setMaxResults(page.getRowsPerPage());
List list = query.list();
return list;
}
}
);
}
return list;
}
catch (RuntimeException re) {
log.error(