我有一个关于插入多个实体的问题。 如果我在循环中持久化每个实体然后我冲洗,那么实体会发生什么?我的意思是如果其中一个实体是重复的并且无法插入会发生什么?是删除所有实体还是仅删除重复的实体?
foreach($datas as $data) {
$obj = new DataLerne();
// Code ..
$obj->setAtt($data['att']);
$em->persist($obj);
}
$em->flush();
感谢您的回复
答案 0 :(得分:0)
由于您使用new
运算符实例化对象,因此技术上可能没有重复。
如果您担心数组中的重复项(填充对象属性),则学说并不关心这一点。
对于Doctrine,那些与foreach循环中的迭代一样多的新实体,并且它们都将在flush上写入您的数据库。
但是,如果在插入数据库的过程中存在任何约束,则doctrine将抛出异常并在其所处的位置中止。