我想在这样的 hql 查询中包含一个嵌套的 select from
:
Query query1 = session.createQuery("from Component where ( AC_ID IS NULL) AND ( WIP_ID IS NOT NULL ) AND ( SELECT USER_ID FROM WorkInProcess WHERE WIP_ID = 'WIP_ID' IS NULL) ");
我如何使用 hibernate hql 查询实现此目的。
谢谢
最佳答案
根据给出的最少信息,我会说有两个类 Component.class 和 WorkInProcess.class。我猜 WIP_ID 是 WorkInProcess.class 的外键。您可以使用以下 hql 查询或基于分离条件的查询来实现它:
session.createQuery("from Component m where m.AC_ID is NULL and WIP_ID IS NOT NULL and m.USER_ID IN (" +
"select e.USER_ID from WorkInProcess e where e.WIP_ID:=wip_id) is null").setParameter("wip_id", wip_id).uniqueResult();
或
DetachedCriteria Query1 = DetachedCriteria.forClass(WorkInProcess.class);
Query1.add(Restrictions.eq("WIP_ID", WIP_ID));
Criteria Query2 = session.createCriteria(Component.class);
Query2.add(Restrictions.isNull("AC_ID"));
Query2.add(Restrictions.isNotNull("WIP_ID"));
Query2.add(Property.forName("USER_ID").eq(Query1));
关于mysql - 使用 Hibernate HQL 的嵌套查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47179918/