// sample code in test cases to reset/truncate all test tables
$connection = static::$entityManager->getConnection();
$platform = $connection->getDatabasePlatform();
foreach (self::getMetadataOfClasses() as $classMetadata) {
$truncateSql = $platform->getTruncateTableSql($classMetadata->getTableName());
$connection->executeUpdate($truncateSql);
}lesende Zugriffe auf die Daten durch die Repositorys zu kapseln und den Entity Manager lediglich für das Schreiben und Löschen zu verwenden.
$batchSize = 20;
$i = 0;
$q = $em->createQuery('select u from MyProject\Model\User u');
$iterableResult = $q->iterate();
foreach ($iterableResult as $row) {
$user = $row[0];
$user->increaseCredit();
$user->calculateNewBonuses();
if (($i % $batchSize) === 0) {
$em->flush(); // Executes all updates.
$em->clear(); // Detaches all objects from Doctrine!
}
++$i;
}
$em->flush();