多对多关系的属性(Hibernate)

时间:2009-09-25 10:43:10

标签: java hibernate annotations many-to-many attributes

我有实体类A和C.它们映射表tblA和tblC并且它们之间具有多对多关系,并且tblB在它们之间进行映射。 tblB包含A_ID,C_ID和SetDate,最后一个是它设置的日期,因此是关系的属性。我的问题是,我如何最好地映射这个属性?目前它们未被映射,如下所示:

A:

@ManyToMany(targetEntity=C.class, cascade={ CascadeType.PERSIST, CascadeType.MERGE } )
@JoinTable(name="tblB", joinColumns=@JoinColumn(name="A_ID"), inverseJoinColumns=@JoinColumn(name="C_ID") )
private Collection<C> Cs;

C:

@ManyToMany( cascade = {CascadeType.PERSIST, CascadeType.MERGE}, mappedBy = "Cs", targetEntity = A.class )
private Collection<A> As;

我该如何从中获取tblB.SetDate?

干杯

的Nik

2 个答案:

答案 0 :(得分:10)

据我所知,不可能以这种方式映射,您必须切换到一对多和多对一关系 ,你的B在中间。您的日期将是B的属性。


由于缺乏进化性,Hibernate文档建议一般避免使用多对多,并从一开始就使用这两种关系。

答案 1 :(得分:3)