refClassRelationAlias的Symfony2原则PHP注释

refClassRelationAlias的Symfony2原则PHP注释,symfony,doctrine,Symfony,Doctrine,对于我的一个表,我有一个多对多的自引用非相等关系。数据库表类似于: Node - id Node_Relationship - parent_id (FK of Node.id) - child_id (FK of Node.id) - PRIMARY KEY (parent_id, child_id) 这会导致条令问题,为该ID组合提供重复条目 这个线程在使用refClassRelationAlias的最底层提到了一个修复 我的问题是,我如何实现这一点?我正在使用PHP注释方法标记我的类,

对于我的一个表,我有一个多对多的自引用非相等关系。数据库表类似于:

Node
- id

Node_Relationship
- parent_id (FK of Node.id)
- child_id (FK of Node.id)
- PRIMARY KEY (parent_id, child_id)
这会导致条令问题,为该ID组合提供重复条目

这个线程在使用refClassRelationAlias的最底层提到了一个修复

我的问题是,我如何实现这一点?我正在使用PHP注释方法标记我的类,但它们只提到使用YAML文件,而我目前没有这样做

我可以在不将所有内容完全重做到YAML文件的情况下实现此功能吗?如果是,怎么做

谢谢

更新:

我的两个字段的注释如下:

/**
     * @ORM\ManyToMany(targetEntity="Module", inversedBy="children")
     * @ORM\JoinTable(name="module_relationships",
     *      joinColumns={@ORM\JoinColumn(name="child_id", referencedColumnName="id")},
     *      inverseJoinColumns={@ORM\JoinColumn(name="parent_id",  
     *      referencedColumnName="id")}
     *      )
     */
    protected $parents;

    /**
     * @ORM\ManyToMany(targetEntity="Module", mappedBy="parents")
     */
    protected $children;
当我向父级或子级添加某些内容时,我也会将其设置为反向。我使用set并使用对象的ID作为键,以避免在ArrayCollection中重复

他们修复了错误,而我只是做错了什么?或者仍然有一个bug需要另一个补丁。我使用的是Symfony 2.0.12版

谢谢

更新2:
原来我是无意中复制的。一旦我更改了功能以实际阻止它们,它似乎工作得很好。

结果证明这是我自己的错。正如我提到的,当我设置避免重复值时,我使用id作为键。。。然而,最初加载的没有这样的密钥,所以我实际上是在造成重复。在添加之前,我将此操作切换为简单地检查它是否包含它,现在它可以正常工作。

修复程序适用于doctrine 1.2版本。最新版本有修复程序吗?我当时做错了什么?我还没有使用自引用多对多关系。但你们还能告诉我发生重复输入问题的场景吗?啊,原来这是我自己的错。正如我提到的,当我设置避免重复值时,我使用id作为键。。。然而,最初加载的没有这样的密钥,所以我实际上是在造成重复。我从那样做改为在添加之前简单地检查它是否包含它,现在它工作得很好。谢谢你的帮助。