Hibernate查找不在集合中的实体

时间:2011-03-22 17:11:43

标签: hibernate hql

我有一个实体CategoryModel。其中一个属性复制如下:

@OneToMany(cascade = CascadeType.ALL)
private List<CategoryModel> children;

如何执行将返回不在另一个CategoryModel实体的CategoryModel集合中的所有children个实体(即根类别)的查询?

1 个答案:

答案 0 :(得分:1)

最有效的方法是使关系双向并在“多”方面应用IS NULL

SELECT c FROM CategoryModel c WHERE c.parent IS NULL

如果你无法改变关系,你可以这样做:

SELECT c FROM CategoryModel p RIGHT JOIN p.children c WHERE p IS NULL