我是新来的冬眠。我对标准的setFirstResult
方法感到困惑。从文档看来,hibernate 从给定的数字返回行。
由于 SQL 查询不保证没有 order by 子句的行的顺序,setFirstQuery
在这种情况下如何工作(没有 orderBy 子句)?hibernate 是否从数据库中读取索引信息?
如果我多次执行相同的 SQL 查询,排序可能会改变,在这种情况下如何setFirstResult
工作?
我是新来的冬眠。我对标准的setFirstResult
方法感到困惑。从文档看来,hibernate 从给定的数字返回行。
由于 SQL 查询不保证没有 order by 子句的行的顺序,setFirstQuery
在这种情况下如何工作(没有 orderBy 子句)?hibernate 是否从数据库中读取索引信息?
如果我多次执行相同的 SQL 查询,排序可能会改变,在这种情况下如何setFirstResult
工作?
Hibernate 不能自己做某事,除非它得到底层数据库的支持。因为 Hibernate 查询最终被转换为Sql
only。
话虽如此,它使用 PostgresSQL 和 MySQL 等底层数据库功能,它会生成类似limit ? offset ?
.
您可以使用添加自定义订单addOrder
.addOrder( Order.asc("name") )
添加订单是您的任务,如果对同一组数据执行多次,您注意到的功能将不能保证相同的结果。
setFirstResult
通常用于分页。