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))