2

我是新来的冬眠。我对标准的setFirstResult方法感到困惑。从文档看来,hibernate 从给定的数字返回行。

由于 SQL 查询不保证没有 order by 子句的行的顺序,setFirstQuery在这种情况下如何工作(没有 orderBy 子句)?hibernate 是否从数据库中读取索引信息?

如果我多次执行相同的 SQL 查询,排序可能会改变,在这种情况下如何setFirstResult工作?

4

2 回答 2

2

Hibernate 不能自己做某事,除非它得到底层数据库的支持。因为 Hibernate 查询最终被转换为Sqlonly。

话虽如此,它使用 PostgresSQL 和 MySQL 等底层数据库功能,它会生成类似limit ? offset ?.

您可以使用添加自定义订单addOrder

.addOrder( Order.asc("name") )
于 2012-10-10T06:33:07.177 回答
0

添加订单是您的任务,如果对同一组数据执行多次,您注意到的功能将不能保证相同的结果。 setFirstResult通常用于分页。

于 2012-10-10T06:22:13.737 回答