使用带有setMaxResults()方法的SQLQuery来限制返回的记录数, hibernate是否使用数据库的本机功能限制结果,如top或limit关键字,或者在返回所有结果后hibernate是否限制库层的结果?
谢谢, 凯沙夫
答案 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限制?