0

我有两个实体

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 的 A(s )

我想保留连接表并且我不希望 A bean 引用 B 所以不允许修改关系。

有任何想法吗?

4

1 回答 1

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
于 2012-04-10T15:05:37.930 回答