в текущую транзакцию?
во время отработки листенера делается выборка из базы, изменяются сущности, и в результате надо чтобы эти изменения попали в эту же транзакцию
выборка делается, судя по логам в профайлере, до start transaction (если юзать preUpdate - то во время транзакции, что уже и так поздно) - но вот изменения в выбраных сущностях не флашатся в базу, т.е. как бы откладываются "на следующий раз". это можно выяснить если дважды вызвать подряд em->flush - как раз во вторую транзакцию изменения листенера и попадают
как сделать чтобы всё было в одной?
Полагаю тебе нужно выполнить recomputeSingleEntityChangeSet чтобы в unit of work подхватились изменения
compute происходит после preFlush()
блин действительно помогло. я делал вызов такой, но почему то не отрабатывал, видимо когда "игрался" с preUpdate, где это не сработало
а выбираются эти же сущности?
нет, выбираются несвязаные сущности в этих несвязаных сущностях меняется jsonb поле, изменения подхватываются uow - их видно было в сдампленых changeSets, но вот в транзакцию сами не попадали
Обсуждают сегодня