join - Doctrine 2 连接表 + 额外字段

标签 join field doctrine-orm jointable

我有两个表和一个连接表:“staff”、“classification”和“staff_classification”。在连接表中,我有一个额外的 bool 字段:'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 引用该字段?例如。什么查询可以获得允许显示的所有员工分类?
  • 我是否将上述注释放在一个类中,而将一个没有 @joinTable 的 @ManyToMany 注释放在另一个类中?例如。 @ManyToMany (targetEntity="Classification")?
  • 最佳答案

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

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

    关于join - Doctrine 2 连接表 + 额外字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4435709/

    相关文章:

    MySql Left join with find_in_set 不能正常工作?

    Odoo 10 选择字段值

    php - Symfony2 : Unable to use DoctrineExtensions Mysql Year function

    java - 如果非最终字段的值可以更改,如何在匿名类类中使用它们?

    php - inversedBy 和 mappedBy 有什么区别?

    caching - Doctrine2 更新元素的缓存

    mysql - 在 MySQL 中计算组合 ID,然后将其存储为库存

    sql - 加入包含前一个最大值的列

    MySQL动态连接

    java - 匿名类和外部私有(private)字段