Doctrine2 - 与一个实体

时间:2016-11-11 15:33:39

标签: doctrine-orm

我有一个表格,其中两个字段必须与Product实体链接。但是,Doctrine只识别其中一个,处理第二个通常的整数。

我读过一个几乎相似的问题 Doctrine2 Mapping: 2 fields mapped to one field (ManyToOne) 但据我所知,我的注释必须正确。

任何想法我做错了什么?

ProductProduct

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="NONE")
     */
    private $id;


    /**
    *  @ORM\Column(name="product_id", type="integer")
     * @ORM\ManyToOne(targetEntity="Product", inversedBy="productProduct")
     * @ORM\JoinColumn(name="product_id", referencedColumnName="id")
     */
    private $product;

    /**
     * @ORM\Column(name="product_replace_id", type="integer")
     * @ORM\ManyToOne(targetEntity="Product", inversedBy="productProductReplace")
     * @ORM\JoinColumn(name="product_replace_id", referencedColumnName="id")
     */
    private $productIdReplace;

产品

/**
 * @ORM\OneToMany(targetEntity="ProductProduct", mappedBy="product")
 **/
private $productProduct;

/**
 * @ORM\OneToMany(targetEntity="ProductProduct", mappedBy="productIdReplace")
 **/
private $productProductReplace;

1 个答案:

答案 0 :(得分:0)

该死的,问题在于以下几行:

@ORM\Column(name="product_replace_id", type="integer")

似乎注释占主导地位,覆盖了@JoinColumn。我删除了这两个实体中的那些行,现在一切似乎都有效。 希望这个问题可以帮助别人避免这样简单的错误:)