HibernateTemplate 只支持 .setMaxResults(int) 方法。
因此,做 Spring+Hibernate 分页处理要使用到一个接口 org.springframework.orm.hibernate3.HibernateCallback
来灵活操作数据库,该接口中有一个未实现的方法 Object doInHibernate (Session session),用以获得并利用 session 进行操作(自动创建、销毁)。
以下代码均参考了 使用 HibernateTemplate 实现分页查询 一文。
![ExpandedBlockStart.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![ExpandedBlockEnd.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
![ExpandedBlockStart.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![ExpandedBlockEnd.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif)
![ExpandedBlockStart.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif)
![ContractedBlock.gif](http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockStart.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockEnd.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![ExpandedSubBlockStart.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockStart.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![ExpandedSubBlockStart.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockStart.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockEnd.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockStart.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif)
![ContractedSubBlock.gif](http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif)
![dot.gif](http://www.blogjava.net/Images/dot.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![InBlock.gif](http://www.blogjava.net/images/OutliningIndicators/InBlock.gif)
![ExpandedSubBlockEnd.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![ExpandedSubBlockEnd.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif)
![ExpandedBlockEnd.gif](http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif)
![None.gif](http://www.blogjava.net/images/OutliningIndicators/None.gif)
也可以通过:
this.getSession();
this.getHibernateTemplate().getSessionFactory().openSession();
分别获取 session 进行 createQuery()等操作。
但是这种做法,需要自己去手动关闭session的。所以你需要配置openSessioninview,不推荐使用!