我有这样的HQL:
from Table1 t1 where t1.name not in (select t2.name from Table2 t2 order by t2.date limit 10)
问题是它无法理解limit
个关键字。有没有办法运行这样的查询而不将其分成两个子查询?
答案 0 :(得分:8)
查看How do you do a limit query in HQL?
你不能用hql限制用hql编写的查询。你需要在Query对象上调用setMaxResults,我想这会阻止你对hql子查询应用限制。
这使您可以选择
答案 1 :(得分:0)
如果您将查询作为SQLQuery提交,然后将您的类添加为实体,则可以使用limit,因为查询是作为sql提交的。你必须使用sql语法。
String sql = "select * from Supplier limit 1";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Supplier.class);
List results = query.list();
- > (也使用子选择)