2015-06-03 242 views
0

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

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

谢谢您的回复

回答

0

既然你是实例与new操作你的对象,有技术上可以没有重复的。

如果您关心数组中的重复项(即填充Objects属性),则doctrine不关心这一点。

对于Doctrine来说,它们和foreach循环中的迭代一样多,并且它们都会在flush上写入数据库。

但是,如果在插入数据库的时候存在任何约束,教义将抛出一个异常并放弃它的立场。

+0

是对此实体有一个约束:@ORM \ Table(uniqueConstraints = {@ ORM \ UniqueConstraint(name =“kapta_mesure”,columns = {“kapta_id”,“mesure_name”,“reading_date”}),@ ORM \ UniqueConstraint(name =“compteur_mesure”,columns = {“compteur_id”,“reading_date”})}) –

+0

非常好,据我所知,我的anser适用。 – DerStoffel