我有一个实体CategoryModel
。其中一个属性复制如下:
@OneToMany(cascade = CascadeType.ALL)
private List<CategoryModel> children;
如何执行将返回不在另一个CategoryModel
实体的CategoryModel
集合中的所有children
个实体(即根类别)的查询?
答案 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