在使用setMaxResults限制结果时,Hibernate SQLQuery是否使用本机功能限制结果

时间:2014-12-16 09:16:50

标签: java hibernate orm

使用带有setMaxResults()方法的SQLQuery来限制返回的记录数, hibernate是否使用数据库的本机功能限制结果,如top或limit关键字,或者在返回所有结果后hibernate是否限制库层的结果?

谢谢, 凯沙夫

1 个答案:

答案 0 :(得分:2)

返回的记录数在查询级别完成。它使用限制等数据库关键字来限制返回的行数。

您还可以打开hibernate.show_sql提取并查看生成的查询。

代码:

SQLQuery sqlQuery = session.createSQLQuery("SELECT * FROM REQUEST_T");
sqlQuery.setMaxResults(10);
List results = sqlQuery.list();

Hibernate生成的查询:

/ *动态本机SQL查询* /

选择         *     从         REQUEST_T限制?

休眠:     / *动态本机SQL查询* /

选择         *     从         REQUEST_T限制?