michaelwang1978

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            10 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
          Hibernate 提供了比較好的分頁查詢api極大地方便了使用者。以下是我在項目中寫的一個Hibernate 分頁查詢的代碼:
          //根據Message 對象所封裝的查詢條件分頁查詢Message對象,S
          public List getPageinMessage(Message message,int startRow,int rows) throws DAOException {       
                  StringBuffer queryString=new StringBuffer(" from Message as message where ");
                  //ActionExceptionHandler actionHandler=new ActionExceptionHandler();
                  if(message.getSource()!=null){
                      queryString.append("message.source.id="+message.getSource().getId());
                      queryString.append(" and senderDelFlag=0");
                  }else if(message.getTarget()!=null){
                      //if message's target is not null query message base on target's id
                      logger.debug("query inbox==================");
                      queryString.append("message.target.id="+message.getTarget().getId());
                      queryString.append(" and receiverDelFlag=0");
                  } else{
                      throw new BusinessException("未選定消息發送者或接受者"); 
                  }
                  queryString.append(" order by message.creatDate DESC");
                  Query query=null;
                  List messageList=null;
                  Session session=this.getSession();       
                  try {
                      query=session.createQuery(queryString.toString());
                      query.setFirstResult(startRow);
                      query.setMaxResults(rows);
                      logger.debug("first row===="+startRow+"===row amount==="+rows);
                      messageList=query.list();
                      if(messageList.size()>0){
                          Message message2=(Message)messageList.get(0);              
                          logger.debug("messageList's length==="+message2);           
                          logger.debug("messageList's length==="+messageList.size());
                      }
                  } catch (HibernateException e) {
                      // TODO Auto-generated catch block          
                      e.printStackTrace();
                      throw new BusinessException("讀取頁面數據發生錯誤"); 
                  }finally{
                      if(session!=null&&session.isOpen()){
                          try {
                              session.close();
                          } catch (HibernateException e1) {
                              e1.printStackTrace();
                              throw new BusinessException("會話關閉異常");                   
                          }
                      }
                  }          
                  return messageList;       
              }
          posted on 2005-10-06 11:05 Michael 閱讀(244) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 荃湾区| 永定县| 宝兴县| 肥城市| 来凤县| 依安县| 定襄县| 库尔勒市| 武胜县| 仪征市| 德保县| 图木舒克市| 曲松县| 乐东| 巨鹿县| 青田县| 中牟县| 岗巴县| 荔浦县| 丹江口市| 襄城县| 兴安盟| 兰坪| 大埔县| 泰宁县| 柏乡县| 阿勒泰市| 蓬溪县| 新巴尔虎左旗| 广宁县| 财经| 左贡县| 吉水县| 昌都县| 汾西县| 海林市| 宜昌市| 甘谷县| 肇源县| 德化县| 瑞金市|