Вопрос о транзакционном поведении обратных вызовов жизненного цикла. Этот ответ предоставляет информацию о обратных вызовах, но не пытается ответить на фактический вопрос.
час работаю с@PostPersist
а также@PostUpdate
и в этих триггерах я сохраняю дополнительные сущности. Вопрос в том, являются ли эти триггеры одной и той же транзакцией, и если нет, то можно ли ее форсировать?
Для меня это работает так. Пока я просматривал логи, транзакция не существует (она фиксируется непосредственно перед запуском триггера), что мешает мне (безREQUIRES_NEW
на сохраняющийся метод из введенного компонента) от сохранения дополнительных объектов в базе данных.REQUIRED
атрибут полностью игнорируется, иMANDATORY
атрибут не выбрасывает исключение.
Может ли быть проблема с JUnit (так как я нахожусь в фазе разработки и не тестировал поведение в полной среде)?
Если расширение транзакции по этим триггерам невозможно, как обеспечить, чтобы откат происходил до@PostPersist
а также@PostUpdate
эти операции также будут отменены.