如何在Hibernate中设置内部查询的限制?
我有这样的HQL:
from Table1 t1 where t1.name not in (select t2.name from Table2 t2 order by t2.date limit 10)
问题是它不了解limit
关键字。 有没有办法运行这样的查询而不将其分成两个子查询?
看看你如何在HQL中进行限制查询?
你不能用hql限制用hql编写的查询。 你需要在Query对象上调用setMaxResults,我想这会阻止你对hql子查询应用限制。
这让你可以选择
- 将其写为sql查询或
- 试图找到另一种编写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();
– >(也使用subselects)
- 在HSQLDB 2.0.0-rc8中选择下一个序列值的“正确”方法
- 为什么我得到org.hibernate.HibernateException:没有配置CurrentSessionContext
- java.lang.OutOfMemoryError:PermGen space Exception
- 引起:java.lang.IllegalStateException:找到不明确的映射。 无法映射’appController’bean方法
- Maven – 如何为hibernate添加所有必需的依赖项?
- Hibernate本机查询 – char(3)列
- Spring Data JPA – “无法初始化代理 – 无会话” – 使用标记为事务的方法
- 没有元模型使用的JPA 2 Criteria API不区分大小写的条件
- JPA,实体管理器,选择许多列并获取结果列表自定义对象