Hibernate条件-排除id相同但属性值不同的记录

Hibernate条件-排除id相同但属性值不同的记录,hibernate,criteria,Hibernate,Criteria,我正在尝试查找个人状态=a的记录 但排除同一个人有另一个状态为b的记录的记录 从状态为“a”的人员中选择* 和Person_id NOT IN从状态为'b'且Person_id不为NULL的Person中选择Person_id 感谢您的帮助您可以通过以下方式使用Criteria API编写子查询: 你能告诉我你的模式是什么样的吗? DetachedCriteria dc = DetachedCriteria.forClass(Person.class); dc.setProjection(Pro

我正在尝试查找个人状态=a的记录 但排除同一个人有另一个状态为b的记录的记录

从状态为“a”的人员中选择* 和Person_id NOT IN从状态为'b'且Person_id不为NULL的Person中选择Person_id


感谢您的帮助

您可以通过以下方式使用Criteria API编写子查询:


你能告诉我你的模式是什么样的吗?
DetachedCriteria dc = DetachedCriteria.forClass(Person.class);
dc.setProjection(Property.forName("id")); // select person_id
dc.add(Property.forName("status").eq("b")); // where status = 'b'

Criteria c = session.createCriteria(Person.class);
c.add(Property.forName("id").notIn(dc)); // where id not in (above subquery)
c.add(Property.forName("status").eq("a")); // and status = 'a'
c.list(); // TODO: handle results