#java #database #hibernate #transactions #spring-transactions
#java #База данных #переход в спящий режим #транзакции #spring-транзакции
Вопрос:
В моем приложении я обновляю таблицу через Hibernate, и для этой таблицы есть триггер ОБНОВЛЕНИЯ. Мой вопрос в том, нужно ли мне фиксировать ту транзакцию (транзакцию Spring), в рамках которой выполняется эта операция обновления, чтобы запустить триггер?
Я использую транзакцию Spring и базу данных Oracle
Спасибо.
Ответ №1:
Да, триггеры уровня базы данных запускаются, когда данные попадают на диск. Это происходит только после завершения фиксации.
Ответ №2:
Нет, но Hibernate часто ожидает завершения транзакции, чтобы запустить все обновления SQL, поэтому это может выглядеть именно так.
Попробуйте удалить свои изменения с помощью EntityManager#flush
(JPA api) или JpaRepository#flush
(из Spring Data) или с помощью JpaRepository#saveAndFlush
объекта после обновления.