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

[复制链接]
查看11 | 回复1 | 2009-8-10 09:56:47 | 显示全部楼层 |阅读模式
回调实际就是一种事件触发模式,一般的用法是进行分页处理,不过一般不赞成在持久层用复杂的模式机制,因为你会将业务压抑在持久层,而不是业务层,如果你做项目,分页可以单独封装一个类,这样业务逻辑很清楚.
回复

使用道具 举报

千问 | 2009-8-10 09:56:47 | 显示全部楼层
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("get failed", re); throw re;} }这是一个分页的方法~当你要用到session对象的时候~session在别处已经打开~但你在本方法里接受不到session对象~新建session对象对象的话会报重复的错误~这里你就要用到回调~应为回调里重写方法里能得到session对象
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行