19

我有两个表和一个连接表:“staff”、“classification”和“staff_classification”。在连接表中,我有一个额外的布尔字段:'showclassification'。我的注释如下:

 /**
 * @ManyToMany(targetEntity="Staff", inversedBy="classifications")
 * @JoinTable(name="staff_classifications",
 *  joinColumns={@JoinColumn(name="staffid", referencedColumnName="id")},
 *  inverseJoinColumns={@JoinColumn(name="classificationid", referencedColumnName="id", unique=true)});
 */
  1. 如何将额外字段“showclassifications”添加到连接表?
  2. 如何通过 DQL 引用该字段?例如,什么查询可以获得所有允许显示的员工分类?
  3. 我是否将上述注释放在一个类中,而将一个没有 @joinTable 的 @ManyToMany 注释放在另一个类中?例如@ManyToMany (targetEntity="Classification")?
4

1 回答 1

32

您需要一个描述关系的实体 (StaffClassifications),它与人员和分类都具有 OneToMany 关系。

ManyToMany 不允许您有任何“额外”属性,因为连接表不是实体,因此不能有任何属性。

于 2010-12-14T04:41:52.130 回答