Spring 如何查询JPQL中可以为null的集合?

Spring 如何查询JPQL中可以为null的集合?,spring,jpa,jpql,Spring,Jpa,Jpql,假设我有一个这样的实体 class Parent { @OneToMany(mappedBy = "par") Set<Child> children String stuff; } class Child { @ManyToOne @JoinColumn(name="par_id", nullable=false) private Parent par; String value; } 但这让我想起了那些有空孩子的父母

假设我有一个这样的实体

class Parent {
    @OneToMany(mappedBy = "par")
    Set<Child> children

    String stuff;
}

class Child {
    @ManyToOne
    @JoinColumn(name="par_id", nullable=false)
    private Parent par;

    String value;
}
但这让我想起了那些有空孩子的父母

我需要选择所有具有一组非空子级以及与value=x匹配的子级的父级。您可以尝试使用内部联接来确保子级存在:

选择明显的PAR从父PAR加入PAR.CHI值CHI.Value=:值 您可以使用exists运算符:

选择与父PAR不同的PAR 哪里有 选池 来自Child chi 其中CHI.Value=:
如果您提供了映射,将更容易理解和帮助。您是否有意省略它?我编辑了这个问题,这就是您所说的映射吗?我是指对象关系映射:JPA/hibernate注释或hibernate xml配置文件。添加了注释
Select DISTINCT par from Parent par LEFT JOIN par.children chi 
WHERE
( par.stuff = :stuff or (:stuff is null))
AND ((chi is not empty) and chi.value = :value))