hibernate查询的maxresult属性如何工作?在下面的例子中:
Query query = session.createQuery("from MyTable");
query.setMaxResults(10);
这是否从数据库中获取所有行,但只显示其中的10行?或者这与sql中的limit
相同。
答案 0 :(得分:11)
它与LIMIT
相同,但它与数据库无关。例如,MS SQL Server没有LIMIT,因此hibernate会负责翻译它。对于MySQL,它会将LIMIT 10
附加到查询中。
因此,请始终使用query.setMaxResults(..)
和query.setFirstResult(..)
而不是本机sql子句。
答案 1 :(得分:0)
SetMaxResults检索所有行并显示已设置的行数。在我的情况下,我没有设法找到一个只能检索限制行数的方法。 我的建议是自己创建查询并设置“rownum”或“limit”。