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