两个实体之间的教义关系

Posted

技术标签:

【中文标题】两个实体之间的教义关系【英文标题】:Doctrine relation between two entities 【发布时间】:2013-02-10 21:18:51 【问题描述】:

我正在尝试将我的网站重写为 symfony2/doctrine。 这些表使用 MyISAM,因此没有外键。

我根本无法将以下查询转换为两个实体并建立一个有效的关系。是因为我使用 MyISAM 吗?

SELECT p.productid, p.price, d.description FROM product p INNER JOIN description d ON p.productid = d.productid;

product 实体中,我已经尝试过了,但还是不行:

/**
 * @ORM\OneToOne(targetEntity="Description")
 * @ORM\JoinColumn(name="productid", referencedColumnName="productid")
 */
protected $description;

【问题讨论】:

您的description 实体中有什么?你有什么错误? 【参考方案1】:

这与 MyISAM 无关。 Doctrine 即使没有外键也可以工作(尽管模式工具通常会强制执行它们)。使用$query->getSQL() 检查生成的 DQL,并根据查询结果验证您的预期结果

【讨论】:

以上是关于两个实体之间的教义关系的主要内容,如果未能解决你的问题,请参考以下文章

教义没有在教义上创建一对多关系:模式:更新

两个不同子类扩展同一个实体实例时的教义继承策略

实体框架代码优先关系 - 如何定义两个对象之间的关系:两个实体之间的可选一对一

教义 - 在多对多关系表中插入记录

教义实体映射不正确

教义存储库与私人成员