Hibernate限制结果查询

时间:2011-05-06 21:25:46

标签: java hibernate

hibernate查询的maxresult属性如何工作?在下面的例子中:

Query query = session.createQuery("from MyTable");
query.setMaxResults(10);

这是否从数据库中获取所有行,但只显示其中的10行?或者这与sql中的limit相同。

2 个答案:

答案 0 :(得分:11)

它与LIMIT相同,但它与数据库无关。例如,MS SQL Server没有LIMIT,因此hibernate会负责翻译它。对于MySQL,它会将LIMIT 10附加到查询中。

因此,请始终使用query.setMaxResults(..)query.setFirstResult(..)而不是本机sql子句。

答案 1 :(得分:0)

SetMaxResults检索所有行并显示已设置的行数。在我的情况下,我没有设法找到一个只能检索限制行数的方法。 我的建议是自己创建查询并设置“rownum”或“limit”。