我想在多个表加入条件后进行分页。
问题是:
当我加入表时生成的重复记录。分页应用于记录集(重复)。
我使用此标准。setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); 删除重复的记录。
例如:通常,应用删除重复后,我会得到10条记录。当我将开始索引设置为1并将结束索引设置为5时,我应该获得5条记录,但是它返回2或3(大约)。这取决于加入。
请帮帮我。
这里的问题在于蜂鸣应用了两种不同的技术。
因此,如果实际上有2行加倍,另加1行,则转换将导致3个对象。
正确的(也许是最好的)方法(如何避免这种情况)是不使用对集合的获取。如果需要显示集合,则应延迟加载(例如,使用批处理大小以减少选择数量)
如果我们需要将集合用作过滤器,则应将其转换为subquery
,然后使用IN(Subquery)子句再次对根实体进行分页
想象一下,父表:
ParentId, Code
1 , 'P1'
2 , 'P2'
3 , 'P3'
子表:
ChildId , Code , ParentId
1 , 'C1' , 1
2 , 'C2' , 1
3 , 'C3' , 2
4 , 'C4' , 2
5 , 'C5' , 3
如果我们要求Parent
加入并加入Child
收藏,我们将
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句