2011-05-06 89 views
7

hibernate查询的maxresult属性如何工作?在下面的例子中:休眠限制结果查询

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

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

回答

11

LIMIT相同,但它与数据库无关。例如MS SQL Server没有限制,所以休眠需要翻译这个。对于MySQL,它会将LIMIT 10附加到查询中。

因此,总是使用query.setMaxResults(..)query.setFirstResult(..)而不是原生的sql子句。

0

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