我有一个表格,其中两个字段必须与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;
答案 0 :(得分:0)
该死的,问题在于以下几行:
@ORM\Column(name="product_replace_id", type="integer")
似乎注释占主导地位,覆盖了@JoinColumn。我删除了这两个实体中的那些行,现在一切似乎都有效。 希望这个问题可以帮助别人避免这样简单的错误:)