一尘不染

多对多关系的属性(hibernate)

hibernate

我有实体类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?

干杯


阅读 467

收藏
2020-06-20

共1个答案

一尘不染

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


由于缺乏灵活性,因此Hibernate文档建议通常避免使用“多对多”,并从一开始就使用这两种关系。

2020-06-20