Theo câu trả lời này , Doctrine2 không cho phép bạn kết hợp nhiều câu lệnh INSERT thành một:
Bạn có thể đọc thêm về xử lý hàng loạt Doctrine2 tại đây: http:// www .doctrine-project.org / blog / doct2-batch-processing.html
Bạn có thể chuyển sang DBAL hoặc sử dụng cách xử lý dữ liệu của mình theo từng đợt nhỏ bằng cách cấp cho trình quản lý thực thể của bạn sau một lượng chèn nhất định:
$batchSize = 20;
foreach ($items as $i => $item) {
$product = new Product($item['datas']);
$em->persist($product);
// flush everything to the database every 20 inserts
if (($i % $batchSize) == 0) {
$em->flush();
$em->clear();
}
}
// flush the remaining objects
$em->flush();
$em->clear();