如何在具有联接和基于行的限制(分页)的休眠状态下获得不同的结果?

丹尼尔·阿列克谢(Daniel Alexiuc):

我正在尝试在具有联接到其他表的Hibernate Criteria查询上使用基于行的限制(例如:setFirstResult(5)setMaxResults(10)来实现分页

可以理解,数据是随机切断的。而其中的原因进行了说明这里

作为解决方案,该页面建议使用“第二个SQL选择”而不是联接。

如何将现有的条件查询(使用createAlias()进行联接)转换为嵌套选择呢?

鱼男孩:

您可以通过请求一个不同的ID列表而不是一个不同的水合对象列表来获得所需的结果。

只需将其添加到您的条件中:

criteria.setProjection(Projections.distinct(Projections.property("id")));

现在,根据基于行的限制,您将获得正确数量的结果。之所以可行,是因为投影将作为 sql查询的一部分执行差异检查,而不是ResultTransformer所做的是执行sql查询之后过滤结果的差异性

值得注意的是,您现在将获得ID列表,而不是获取对象列表,您可以使用它们在以后休眠的情况下合并对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在休眠状态下基于ID更新行

如何在休眠状态下检查是否存在具有不同ID的相同数据?

如何在休眠状态下删除具有外键的行?

如何在休眠状态下编写联接查询

在休眠状态下实现结果分页(获取总行数)

在休眠状态下获得结果的快速方法?

如何在休眠状态下使用条件转换mysql联接查询

在休眠状态下,如何在具有复合键的2个表之间进行一对一映射?

在具有多个关系的休眠状态下删除

如何在休眠状态下建立友谊关系?

如何在休眠状态下对实体进行本地修订?

如何在休眠状态下保存外键?

如何在休眠状态下使用UNION执行查询

如何在休眠状态下重用Criteria对象?

如何在休眠状态下指定Double的精度?

如何在休眠状态下进行乐观锁定

如何在休眠状态下使用SQL in()?

如何在休眠状态下更新表?

在dropwizard和休眠状态下的主从

如何在不同的屏幕尺寸下获得不同的显示

如何在特定的“完成”状态下获得工作

如何在React状态下编写查询结果?

如何在休眠状态下使用casedeType一次保存父项和一组子项

在休眠状态下合并具有复合主键的实体时发生异常

在javascript中,我如何在具有相同类的多个div上运行一个函数以获得不同的结果

如何在休眠状态下使用聚合函数编写查询?

如何在休眠状态下仅审计超类的一部分?

如何在休眠状态下将父类转换为继承的子类?

如何在休眠状态下获取远程数据库的数据