|
|
|
| 您的位置:首页>>Hibernate>>Hibernate 分页查询 |
|
|
Hibernate 分页查询
|
| 2005-08-10 来源:CSDN 作者:yangsheng710 |
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; }
|
|
|
|