我试图添加一行,它附有一个相关的(一对一)行,而不必进行查找。例如:
$row = new Product();
$row->setField1('123');
$row->setRelatedFieldId(3);
我现在要做的是:
$related_record = $repo->find(3);
$row->setRelatedName($related_record);
但是symfony在那里进行了第二次搜索。这是查找的强大功能,能够链接不同的表,但我已经拥有相关行的ID,而不是在进行插入之前不必对其进行另一个查询。有什么建议吗?
答案 0 :(得分:2)
替换:
$related_record = $repo->find(3);
使用:
$related_record = $em->getReference('ClassName',123);
它为您提供了相关对象的引用,然后您可以使用它来设置关系。对象本身不会被加载。由您来确保对象123存在。
我应该指出,通过缓冲和缓存,使用引用可能不会节省太多。
答案 1 :(得分:0)
请阅读http://www.doctrine-project.org/jira/browse/DDC-357 看起来这是使用one2many关系插入的one2one
的预期行为和最简单的方法