0

私は2つのエンティティを持っています

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 を持つ必要もありません。

B に割り当てられているすべての A を選択するクエリと、B に割り当てられていない A を選択するクエリの 2 つが必要です

結合テーブルを保持したいのですが、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 に答える