Symfony2插入多个实体

时间:2015-06-03 16:11:33

标签: symfony entity entitymanager persist

我有一个关于插入多个实体的问题。 如果我在循环中持久化每个实体然后我冲洗,那么实体会发生什么?我的意思是如果其中一个实体是重复的并且无法插入会发生什么?是删除所有实体还是仅删除重复的实体?

foreach($datas as $data) {
        $obj = new DataLerne();
        // Code ..
        $obj->setAtt($data['att']);
        $em->persist($obj);
}
$em->flush();

感谢您的回复

1 个答案:

答案 0 :(得分:0)

由于您使用new运算符实例化对象,因此技术上可能没有重复。

如果您担心数组中的重复项(填充对象属性),则学说并不关心这一点。

对于Doctrine,那些与foreach循环中的迭代一样多的新实体,并且它们都将在flush上写入您的数据库。

但是,如果在插入数据库的过程中存在任何约束,则doctrine将抛出异常并在其所处的位置中止。