我有实体类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?
干杯
据我所知, 不可能 以这种方式映射它,您必须 切换到“一对多”和“多对一”关系 ,并且将B放在中间。您的日期将是B的属性。
由于缺乏灵活性,因此Hibernate文档建议通常避免使用“多对多”,并从一开始就使用这两种关系。