Java 不按任何顺序使用Hibernate setFirstResult
我刚开始冬眠。我对criteria的Java 不按任何顺序使用Hibernate setFirstResult,java,hibernate,hibernate-criteria,Java,Hibernate,Hibernate Criteria,我刚开始冬眠。我对criteria的setFirstResult方法感到困惑。 从文档中可以看出,hibernate从给定的数字返回行 由于SQL查询不能保证没有order by子句的行的顺序, setFirstQuery在这种情况下如何工作(没有orderBy子句)? hibernate是否从数据库读取索引信息 如果我多次执行同一个SQL查询,排序可能会改变,在这种情况下,setFirstResult如何工作?您的任务是添加一个order by,您注意到,如果在同一组数据上执行多次,函数将无法
setFirstResult
方法感到困惑。
从文档中可以看出,hibernate从给定的数字返回行
由于SQL查询不能保证没有order by子句的行的顺序,
setFirstQuery
在这种情况下如何工作(没有orderBy子句)?
hibernate是否从数据库读取索引信息
如果我多次执行同一个SQL查询,排序可能会改变,在这种情况下,
setFirstResult
如何工作?您的任务是添加一个order by,您注意到,如果在同一组数据上执行多次,函数将无法保证相同的结果。
setFirstResult
通常用于分页。除非底层数据库支持,否则Hibernate无法自行完成某些操作。因为Hibernate查询最终只能转换为Sql
说到这里,它使用了底层数据库功能,比如PostgresSQL和MySQL,它将生成类似limit?偏移量?
您可以使用addOrder
.addOrder( Order.asc("name") )
这里关于“默认情况下,它将按主键排序”的部分不准确。Hibernate不添加隐式排序,返回结果的顺序完全取决于底层数据库。我知道PostgreSQL和MySQL使用了Limit和offset,但如果没有它们,Oracle数据库会使用什么?