有没有什么好的方式分页不影响dao层的,我用了hibernate的一对多关系,而需要分页的是"多"这边的,数据库分页实现不了了,hibernate真是害人啊! :cry:
你这样搞把全部关联的对象都查询出来,再就得放在session中,(为了性能,你总不可能每次分页都查询一下,那对数据库压力太大,可以设置规则,比如,几分钟后重新查询再缓存)
关联的对象应该是放在list中吧
那分页就用list的方法就能得到想要的范围的数据
subList
List subList(int fromIndex,
int toIndex)返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。(如果 fromIndex 和 toIndex 相等,则返回的列表为空)。返回的列表由此列表支持,因此返回列表中的非结构性更改将反映在此列表中,反之亦然。返回的列表支持此列表支持的所有可选列表操作。
此方法省去了显式范围操作(此操作通常针对数组存在)。通过传递 subList 视图而非整个列表,期望列表的任何操作可用作范围操作。例如,下面的语句从列表中移除了元素的范围:
list.subList(from, to).clear();
可以对 indexOf 和 lastIndexOf 构造类似的语句,而且 Collections 类中的所有算法都可以应用于 subList。
如果支持列表(即此列表)通过任何其他方式(而不是通过返回的列表)从结构上修改,则此方法返回的列表语义将变为未定义(从结构上修改是指更改列表的大小,或者以其他方式打乱列表,使正在进行的迭代产生错误的结果)。
参数:
fromIndex - subList 的低端(包括)。
toIndex - subList 的高端(不包括)。
返回:
列表中指定范围的视图。
你这样分页的话, 还是要对dao层增加相应的方法来得到嘛,
只不过你现在看来应该是针对某个对应的1的多端进行分页,只查询多的部分,
pager-taglib