少年阿賓

          那些青春的歲月

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          **
          * 使用hql 語(yǔ)句進(jìn)行操作

             * @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進(jìn)行操作
          * @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);
               //循環(huán)遍歷添加約束條件
               for (int i = 0; i < criterions.length; i++) {
                criteria.add(criterions[i]);
               }
               criteria.setFirstResult(offset);
               criteria.setMaxResults(length);
               return criteria.list();
              }
             });
             return list;
          }

          你不是說(shuō)你用HibernateTemplate了,如果你用的是spring的HibernateTemplate,那么就直接用就行了,如果你是自己寫(xiě)的template,
          那你也應(yīng)該會(huì)準(zhǔn)備一個(gè)HibernateCallback類啊,這才是典型的模板加回調(diào)啊

          算了,把HibernateCallback也給你貼出來(lái)

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

          /*************************************
          * 為 Hibernate 所提供的一個(gè) 回調(diào)接口,
          * 此接口定義了 統(tǒng)一 Hibernate的業(yè)務(wù)操作;
          * @author kenshin
          *
          */
          public interface HibernateCallback {

          /**************************************
            * 回調(diào)接口的回調(diào)方法,此方法使用者無(wú)需調(diào)用,
            * 它由 模板類來(lái)進(jìn)行回調(diào),并傳入一個(gè) session參數(shù),
            * 以便讓使用者完成相關(guān)業(yè)務(wù)
            * @param ses
            * @return 執(zhí)行結(jié)果
            * @throws HibernateException
            */
          Object doInHibernate(Session ses)
                 throws HibernateException;

          }
          posted on 2012-05-17 16:54 abin 閱讀(569) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate
          主站蜘蛛池模板: 丹寨县| 曲阳县| 江源县| 蓬安县| 蒙自县| 盐城市| 富顺县| 安新县| 原阳县| 贺州市| 麟游县| 航空| 虹口区| 灵宝市| 灵山县| 鹤山市| 宜宾市| 平顶山市| 简阳市| 正安县| 长宁县| 莱西市| 定兴县| 阿拉尔市| 施秉县| 定南县| 花莲市| 万山特区| 修水县| 渭源县| 明溪县| 包头市| 涪陵区| 牡丹江市| 平武县| 津南区| 仪征市| 阳谷县| 改则县| 平谷区| 赤城县|