我已创建实体A
与OneToMany
关系到B
,其关系为OneToMany
至C
。具有相关实体的深克隆主义实体
我必须克隆这个A
实体并将其设置在数据库中,并带有新的ID。同样所有深层次的关系也应该用新的ID进行克隆。
我有什么企图是设置A
id来null
:
$A = clone $A_original;
$A->setId(null);
$em->persist($A);
它在A
表中创建新的记录,但在B
和C
不一样。
我应该怎么做才能制作A
实体的完整副本?
是,它似乎与这个唯一的问题不工作OneToMany,任何想法为什么? – coder4show
@ coder4show,这是因为您正在克隆ArrayCollection而不是其中的元素。我为OneToMany关系添加了一个克隆方法。 – flec
在这个例子中,OneToMany关系不会被克隆,因为克隆的相关实体仍然引用旧的实体。请参阅[这个答案](http://stackoverflow.com/a/28313673/3215645)为一个工作示例 – Richard