我有两个实体
class A{
}
class B{
@OneToMany()
@JoinTable(name = "a_b", joinColumns = { @JoinColumn(name = "a_id") }, inverseJoinColumns = { @JoinColumn(name = "b_id") }, uniqueConstraints = { @UniqueConstraint(columnNames = { "b_id" }) })
private Set<A> aSet;
}
该关系是可选的,因此不是每个A都会被分配给B而不是每个B都必须有任何A(s)。
我需要两个查询来选择分配给任何B的所有A(s)和另一个选择分配给任何B的 NOT 的A(s)。
我想保留连接表,我不希望A bean引用B,因此不允许修改关系。
有什么想法吗?
答案 0 :(得分:0)
您可以使用RIGHT JOIN
:
SELECT a FROM B b RIGHT JOIN b.aSet a WHERE b IS NULL
和
SELECT a FROM B b RIGHT JOIN b.aSet a WHERE b IS NOT NULL