1
0
Fork 0
mirror of synced 2025-03-30 03:30:13 +03:00

Update docs/en/reference/batch-processing.rst

If you have only $batchSize - 1 rows (amongst other cases), the entities are never flushed, you need a final flush outside the loop.

In the bulk insert you should also need a final flush if the number of entities inserted is not a multiple of the $batchSize.
This commit is contained in:
Albert Casademont 2013-02-08 16:32:03 +01:00
parent 3b0a242ab3
commit 4c90d0cedc

View file

@ -37,7 +37,7 @@ internally but also mean more work during ``flush``.
$user->setUsername('user' . $i);
$user->setName('Mr.Smith-' . $i);
$em->persist($user);
if (($i % $batchSize) == 0) {
if (($i % $batchSize) === 0) {
$em->flush();
$em->clear(); // Detaches all objects from Doctrine!
}
@ -80,12 +80,13 @@ with the batching strategy that was already used for bulk inserts:
$user = $row[0];
$user->increaseCredit();
$user->calculateNewBonuses();
if (($i % $batchSize) == 0) {
if (($i % $batchSize) === 0) {
$em->flush(); // Executes all updates.
$em->clear(); // Detaches all objects from Doctrine!
}
++$i;
}
$em->flush();
.. note::
@ -132,12 +133,13 @@ The following example shows how to do this:
$iterableResult = $q->iterate();
while (($row = $iterableResult->next()) !== false) {
$em->remove($row[0]);
if (($i % $batchSize) == 0) {
if (($i % $batchSize) === 0) {
$em->flush(); // Executes all deletions.
$em->clear(); // Detaches all objects from Doctrine!
}
++$i;
}
$em->flush();
.. note::