foreach ($some as $another) {
if ($what) {
$repo->add($another);
}
}
Если не оборачивать такое в транзакцию, то после каждого вызова add будет добавление в БД = тормоза.
С другой стороны, если в add нет flush, то не будет лишней работы UoW. Но если забыть потом заюзать внешний флешер, то данные вообще пропадут. В итоге решил, что флеш должен быть в cud методах + сверху ещё одна транзакция. Будет лишний раз гоняться UoW, но ничего не забудем и будет относительно быстро.
+ ещё может понадобиться делать $em->clear(), если данных очень много, и вот тут уже кроме транзакции может понадобиться и внешний флешер... В итоге между этими кейсами и болтаюсь.