Size: a a a

2021 September 01

AM

Artem Molotov in symfony
Когда нужно bulk insert/update сделать на 10к записей, к примеру.
источник

AM

Artem Molotov in symfony
А, тьфу, нет.
источник

✨Basic_Instinct✨ in symfony
ну так то это не орм тогда
источник

AM

Artem Molotov in symfony
Не о том подумал. Скорее о ситуации, когда нужно что-то посчитать и по факту сразу записать. Пример с деньгами наиболее часто вспоминается
источник

✨Basic_Instinct✨ in symfony
а dbal
источник

AM

Artem Molotov in symfony
Орм. Просто нужно делать инсерт по к-ству + очистку uow + всё это в транзакции
источник

КГ

Константин Грачев... in symfony
Говоря про flush мы говорим про uow.
Как правило у нас есть какой то код, который меняет состояние сущностей/коллекций. И когда мы закончили все изменения мы их коммитим (сохраняем новое состояние в базу).
Так вот flush в методе add это коммит состояния где то по середине твоего кода. То есть ты мог ещё не все объекты привести к нужному состоянию, а уже частично коммит делаешь.

Ну или ты насоздавал 50 новых сущностей и в конце блока кода хочешь засунуть их в add. 50 последовательных коммитов?
источник

AM

Artem Molotov in symfony
+
источник

КГ

Константин Грачев... in symfony
Вообще коммит состояния это же про инфраструктуру. Когда этот коммит происходит где то в миллдваре скрыто от тебя это самый удобный вариант, в моей практике во всяком случае
источник

ПГ

Павел Г. in symfony
Ну я пока ответа не нашел. Но что такое add на 50 сущностей? Репозиторий только у агрегата, один агрегат = 1 транзакция
источник

ПГ

Павел Г. in symfony
Значит 50 коммитов)
источник

AM

Artem Molotov in symfony
Я для себя решил, что флеш можно там и оставить, но создать "Транзакцию" и в ней дополнительно оборачивать в транзакцию БД + коммит когда нужно.

Но в таком случае нужно не забывать юзать транзакцию. Точно так же не забывать, как и запуск флеша, когда em->flush нет внутри cud-метода.
источник

ПГ

Павел Г. in symfony
Ну если по теории агргегатор идти
источник

КГ

Константин Грачев... in symfony
50 новых агрегатов создать надо)
источник

КГ

Константин Грачев... in symfony
Импорт из экселя пришел, например
источник

AM

Artem Molotov in symfony
Согласен, выглядит удобно. Если б не те обсуждения, то я тоже так делал бы. А сейчас не могу определиться.
источник

D

Dmitriy in symfony
А как вы мидлвари в симфони готовите?
источник

ПГ

Павел Г. in symfony
Ну так, 1 агрегат = 1 транзакция
источник

ПГ

Павел Г. in symfony
Это правило
источник

КГ

Константин Грачев... in symfony
У меня операция "загрузка экселя". В этой операции транзакция это весь эксель. Либо всё загружается либо ничего
источник