我的父类对象category中包含一个集合set的子对象product..category对象对应的 hbm.xml中对product进行了set映射.hibernate可以延迟检索到多个子对象,但他好像是一次性全部检索出来的.我要分页检索出来 如何处理。我说的是后台基于数据库的分页操作.
解决方案 »
- 泛型的如何指定class类型
- 我该怎么处理jdbc的结果集哦?
- word另存为html,能否用程序来转
- 关于struts2标签中的radio的用法
- 我在第一张jsp页面添加了一个字符串数组,如何在另一个jsp页面中取出来?
- 求一个在线bug系统!
- spring ,hibernate 和weblogic,在解析xml时向数据库提交了两次????????????????????????
- 初学jsp和servlet有什么好书推荐么??????
- Resin的配置問題~或許這個問題很菜~不過我已經想暸大半天暸~看暸caucho.com上的文檔很久暸~還是不會
- 请问为什么不能创建Client.jar?
- 新开一贴,高手速进~~关于表格内容的颜色问题
- Jsp/WEB.高手进来,十万火急,在线等待~~~!
private Intger id;
private String name;
private Set<Product> products=new Hashmap<Product>(); //getter and setter method}
当然是可以这样在product类的业务逻辑类中定义一个方法,通过传递一个类别对象和分页参数,分页获取该类别下的产品信息/*
分页查询category类别下的product信息,返回一个包含了分页数据的对象Page
@param category 产品类别
@param pageNo 显示的页码
@param pageSize 页的大小
@result 查询的该类的第pageNo页的全部数据
*/
public Page<Product> queryByPage(Category category,pageNo,pageSize); //调用Query中的分页方法进行分页查询数据如此一来,貌似可以...
但我在持久化类中定义的 一对多的set映射,利用hibernate的延迟加载来获取的全部的products对象,却还是没有什么效率? 当我的 category关联1000个product对象的时候 即使是延迟加载,那只是加载这个动作是延迟进行的,并不是说明加载的过程是延迟的,有1000个对象他会持续发送1000条 select 数据..
获取整个数据的过程是全部获取到的。 虽然set中可以设置batch-size 来设置批量抓取的数量 ... 但我感觉很别扭,特别是我需要统计总页数,在前端 jsp 中使用分页标签进行显示数据时候,比较麻烦.....??
你可以考虑弄一个div 然后显示集合信息 (通过查询一的一端的信息得到该集合的分页)
一般情况下还是用两条SQL来统计,一条SQL查询出某个条件下的所有行数,让后在使用rownum\limit进行查询控制;这里不太明白你要对那些数据进行分页?是category还是查询出来的每个category所包含的product进行分页?同时针对batch-size的大小一般设置为分页大小。