を挿入結合:これらのエンティティは、テーブルに参加してい教義は、私は2 entitesを持っJoinTableが
Voucher
Support
は、私は新しいバウチャー1000の既存のサポートを追加すると、それは1000個のINSERTクエリを呼び出します
voucher_support
と呼ばれます私のSQLサーバーへのvoucher_supportで。 50.000と確かに50.000のインサートもあります。
どのようにしてその教義が単一のINSERTを作成し、パフォーマンスを向上させることができますか?
EDIT:
私はバルク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();
Iこのアプローチを知っていて、すでに他の部分で使用しています。 しかし、私は複数のバウチャーやサポートを挿入しません。 Join Tableの挿入が問題です。 – develth
'INSERT INTO ... SELECT FROM ... 'でネイティブ・クエリを使用すると、行をジョイン・テーブルに取り込むことができます。 –