我有两个的entites:主义结合JoinTable插入
Voucher
Support
这些实体连接表称为
voucher_support
当我加1000和现有的支持,以新的凭证,它会调用1000个INSERT查询在voucher_support到我的SQL服务器。有50.000肯定也50.000插入。
我怎样才能实现该原则只是使一个INSERT和提高我的表现?
编辑:
我认为大宗insertation是解决不了问题。 这是我更好地理解当前的代码:Doctrine2文档
$voucher = new Voucher();
$voucher->setCreatedAt(new \DateTime());
$supports = $this->em->getRepository('Support')->getOpen();
foreach($supports as $support){
// this generates for each support a INSERT in join table.
$voucher->addSupport($support);
}
$this->em->persist($voucher);
$this->em->flush();
我知道这种方法并已在其他部分使用它。 但我不插入多张代金券或支持。 Join Table插入是问题。 – develth
您可以使用“INSERT INTO ... SELECT FROM ...”的本地查询将行填充到连接表中。 –