我有与一对一关系的设置实体相关的产品实体。所有产品均为进口产品,开始时产品在设置表中没有相关行。Symfony2 OneToOne注解插入/更新相关实体
使用Symfony更新产品时,会创建适当的关系,因此我在Product和Setting之间设置了OneToOne。
INSERT INTO settings (id_product, setting_1, setting_3, setting_3) VALUES (11153, '0', '1', '1');
该刀片通过Symfony的感谢注释和方法automaticaly提出:
$em->merge($product);
$em->flush();
不幸的是,当我尝试下一次更新产品的另一插入到设置表这是使用简单的INSERT语句来完成完成,显然我有和错误becouse id_product是PK,必须是唯一的。如果产品和设置之间存在关系,我应该如何强制Symfony执行UPDATE而不是INSERT?我使用最新版本的Symfony创作我的音乐。
你能后的代码,你如何更新设置实体?通常情况下,$ product-> getSetting() - > setSomeVar('foobar')应该更新设置实体,而不是创建一个新的... – Matt
我发布它 - 看看合并方法。当它达到它自动更新(总是新的插入 - 问题)设置实体感谢注释... –
我仍然认为我们需要更多的信息注释,级联,使用合并V坚持等IME,我只使用合并管理已经脱离实体经理的实体。如果使用persist()而不是merge(),会发生什么? – Matt