我有两个表和一个联接表:“ 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)});
*/
如何将额外的字段“ showclassifications”添加到联接表?
如何通过DQL引用该字段?例如。什么查询将获得允许显示的所有员工分类?
是否将上面的注释放在一个类中,而将@ManyToMany注释放在另一个类中,而没有@joinTable?例如。 @ManyToMany(targetEntity =“ Classification”)?
最佳答案
您需要一个描述关系的实体(StaffClassifications),该实体与职员和类别都具有OneToMany关系。
ManyToMany不允许您具有任何“额外”属性,因为联接表不是实体,因此不能具有任何属性。
关于join - 教义2连接表+额外字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4435709/