Spring で使用するために、プロプライエタリ データベースを Hibernate にマッピングしています。その中には、エンティティ A とエンティティ B の次のスキーマを持ついくつかのジョイント可能オブジェクトがあります。
CREATE TABLE AjoinB (
idA int not null,
idB int not null,
groupEnum enum ('groupC', 'groupD', 'groupE'),
primary key(idA, idB, groupEnum)
);
ご覧のとおり、これは、それらを異なるグループに入れる複数の AB 関係が存在する可能性があることを示しています。エンティティ A の最初の行とエンティティ B の 2 番目の行、次のセットで終わりたいと思います
Set<B> BforGroupC, BforGroupD, BforGroupE;
Set<A> AforGroupC, AforGroupD, AforGroupE;
これまでのところ、それらを 1 つのセットにまとめて、 groupEnum 関係属性を無視することしかできませんでした。
@ManyToMany(targetEntity=B.class, cascade={ CascadeType.PERSIST, CascadeType.MERGE } )
@JoinTable(name="AjoinB", joinColumns=@JoinColumn(name="idA"), inverseJoinColumns=@JoinColumn(name="idB") )
private Set<B> BforAllGroups;
と
@ManyToMany( mappedBy = "BforAllGroups", targetEntity = A.class )
private Set<A> AforAllGroups;
groupC、groupD、または groupE のいずれかに属する複数のセットを作成するにはどうすればよいですか?
乾杯
ニック