从hibernate中检索子结果集的正确/有效方法是什么?
假设产品是包含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)");
答案 0 :(得分:3)
使用query.setFirstResult()
和query.setMaxResults()
但请注意,这当然取决于结果集的排序。
Query query = session.createQuery("from products p");
query.setFirstResult(30);
query.setMaxResults(10);
List result = query.list();
答案 1 :(得分:0)
查看javadoc of Query中的setFirstResult
和setMaxResults
。
请注意,这些应用于JDBC调用返回的行,而不是查询返回的实体。一般来说,这是等价的。但是,如果您的查询获取* ToMany关联,则不是这样。