少年阿宾

那些青春的岁月

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
**
* 使用hql 语句进行操作

   * @param hql
* @param offset
* @param length
* @return List
*/
public List getListForPage(final String hql, final int offset,
    final int length) {
   List list = getHibernateTemplate().executeFind(new HibernateCallback() {
    public Object doInHibernate(Session session)
      throws HibernateException, SQLException {
     Query query = session.createQuery(hql);
     query.setFirstResult(offset);
     query.setMaxResults(length);
     List list = query.list();
     return list;
    }
   });
   return list;
}/**
* 使用criterion进行操作
* @param arg
* @param criterions
* @param offset
* @param length
* @return List
*/
protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) {
   List list = getHibernateTemplate().executeFind(new HibernateCallback() {
    public Object doInHibernate(Session session)
      throws HibernateException, SQLException {
     Criteria criteria = session.createCriteria(arg);
     //循环遍历添加约束条件
     for (int i = 0; i < criterions.length; i++) {
      criteria.add(criterions[i]);
     }
     criteria.setFirstResult(offset);
     criteria.setMaxResults(length);
     return criteria.list();
    }
   });
   return list;
}

你不是说你用HibernateTemplate了,如果你用的是spring的HibernateTemplate,那么就直接用就行了,如果你是自己写的template,
那你也应该会准备一个HibernateCallback类啊,这才是典型的模板加回调啊

算了,把HibernateCallback也给你贴出来

import org.hibernate.HibernateException;
import org.hibernate.Session;

/*************************************
* 为 Hibernate 所提供的一个 回调接口,
* 此接口定义了 统一 Hibernate的业务操作;
* @author kenshin
*
*/
public interface HibernateCallback {

/**************************************
  * 回调接口的回调方法,此方法使用者无需调用,
  * 它由 模板类来进行回调,并传入一个 session参数,
  * 以便让使用者完成相关业务
  * @param ses
  * @return 执行结果
  * @throws HibernateException
  */
Object doInHibernate(Session ses)
       throws HibernateException;

}
posted on 2012-05-17 16:54 abin 阅读(549) 评论(0)  编辑  收藏 所属分类: hibernate

只有注册用户登录后才能发表评论。


网站导航: