我正在将专有数据库映射到 Hibernate 以与 Spring 一起使用。在其中,有几个可连接对象,对于实体 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 的第二行,以下集合
Set<B> BforGroupC, BforGroupD, BforGroupE;
Set<A> AforGroupC, AforGroupD, AforGroupE;
到目前为止,我只设法将它们放在一组中并忽略 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 中创建多个集合?
干杯
尼克