【发布时间】:2009-11-19 09:09:12
【问题描述】:
我正在将专有数据库映射到 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)
);
如您所见,这表明可以有多个 A-B 关系将它们放在不同的组中。我想结束,实体 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 中创建多个集合?
干杯
尼克
【问题讨论】:
-
在 Join 上做类似@DiscriminatorColumn(name="groupEnum", discriminatorType=ENUM) @DiscriminatorValue("groupC") 会很漂亮:-)
标签: java hibernate spring many-to-many jointable