我有这样的表结构:
但是在symfony2项目中company
表对我来说没用。所以,我需要像这样建立关系:
我在shop
实体中创建了ManyToOne单向关系,代码:
/**
* @ORM\ManyToOne(targetEntity="Currency")
* @ORM\JoinColumn(name="company_id", referencedColumnName="company_id")
*/
protected $currency;
但是,我得到了实体错误:
引用的列名称' company_id'必须是目标实体类的主键列' Acme \ ShopsBundle \ Entity \ Currency'。
如果我尝试将company_id
实体上的currency
定义为Id
/**
* @ORM\Id
* @ORM\Column(name="company_id", type="integer")
* @ORM\GeneratedValue(strategy="NONE")
*/
protected $companyId;
然后我在调试时遇到另一个实体错误:
协会'货币'的加入列必须匹配目标实体的所有标识符列' Acme \ ShopsBundle \ Entity \ Shop'但是' id'缺少
但是如果那时我从主currency
id中删除了主键的定义,那么一切正常,但问题是从currency.id
删除主键不是好主意所以我不喜欢这样。
还有另一种解决方案来映射这些实体而没有任何错误吗?
对不起我的英语,不是我的母语..