Java 如何在Hibernate中设置内部查询的限制?
我有这样的HQL:Java 如何在Hibernate中设置内部查询的限制?,java,mysql,hibernate,hql,Java,Mysql,Hibernate,Hql,我有这样的HQL: from Table1 t1 where t1.name not in (select t2.name from Table2 t2 order by t2.date limit 10) 问题是它不理解limit关键字。有没有一种方法可以运行这样的查询而不将其拆分为两个子查询?查看 不能使用hql限制用hql编写的查询。您需要在查询对象上调用setMaxResults,我想这将阻止您对hql子查询应用限制 这让你可以选择 将其写入sql查询或 试图找到另一种编写hql查询
from Table1 t1 where t1.name not in (select t2.name from Table2 t2 order by t2.date limit 10)
问题是它不理解limit
关键字。有没有一种方法可以运行这样的查询而不将其拆分为两个子查询?查看
不能使用hql限制用hql编写的查询。您需要在查询对象上调用setMaxResults,我想这将阻止您对hql子查询应用限制
这让你可以选择
- 将其写入sql查询或
- 试图找到另一种编写hql查询的方法,这样子查询就不需要限制
String sql = "select * from Supplier limit 1";
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Supplier.class);
List results = query.list();
-->(也可使用子选择)还有第三个选项。执行两个单独的HQL查询,其中第一个查询的结果将使用Java提供给第二个查询。cherouvim的解决方案将导致原子性问题。