Java HQL选择结果范围

Java HQL选择结果范围,java,hibernate,jakarta-ee,hql,Java,Hibernate,Jakarta Ee,Hql,从hibernate检索结果子集的正确/有效方法是什么 假设products是一个包含3000条记录的表 Session session = SessionFactorys.getSessionFactory().openSession(); Query query = session.createQuery("from products p"); List result = query.list().subList(30, 40); session.disconnect(); 上面

从hibernate检索结果子集的正确/有效方法是什么

假设products是一个包含3000条记录的表

Session session = SessionFactorys.getSessionFactory().openSession();
Query query = session.createQuery("from products p");
List result = query.list().subList(30, 40);     
session.disconnect();
上面的代码似乎不是很有效。如果有更好的方法,我正在尝试找到类似的方法

Query query = session.createQuery("from products p range(30,40)");

查看中的
setFirstResult
setMaxResults


注意,这些应用于JDBC调用返回的行,而不是查询返回的实体。一般来说,这是等效的。但这不是查询是否获取了*ToMany关联。

使用
query.setFirstResult()
query.setMaxResults()
,但请注意,这当然取决于结果集的顺序

Query query = session.createQuery("from products p");
query.setFirstResult(30);
query.setMaxResults(10);
List result = query.list();

谢谢,我真的应该找到的。假设它是HQL字符串的一部分