我有两个实体:Objetct和Product,每个表中都有一个额外的ID:officeId此id在每个表中(我无法修改数据库(和3张表:
- 对象
- 产品
- ObjectProduct
我想要一种男女单向的关系。
实体对象:
class Object
{
/**
* @var Products[]|ArrayCollection
*
* @ORMManyToMany(targetEntity="AppBundleEntityProducts")
* @ORMJoinTable(name="ObjectProduct",
* joinColumns={@ORMJoinColumn(name="objectId", referencedColumnName="id"),
* @ORMJoinColumn(name="officeId", referencedColumnName="officeId")},
* inverseJoinColumns={@ORMJoinColumn(name="productId", referencedColumnName="id"),
* @ORMJoinColumn(name="officeId", referencedColumnName="officeId")}
* )
*
*/
private $products;
}
我的问题是,当尝试插入时,请插入officeId属性两次:比如:插入到ObjectProduct(objectId,officeId,productId,officeId(值(?,?,?(
当您使用多对多关系(单向或双向(时,它会创建一个联接表。你似乎知道这一部分。
这个联接表包含两个外键,表示一个复合主键(为了确保唯一性(。这是自动
如果你想更改任何内容(广告一个额外的ID,额外的列…(,那么你需要将其映射为项目中的一个实体,并定义一对多关系,而不是多对多