Моя компания использует триггеры ONINSERT, ONUPDATE, ONDELETE базы данных для регистрации изменений, а также есть способ выдать себя за другого пользователя базы данных, вызвав хранимую процедуру, которая устанавливает параметр сеанса базы данных.Затем любые изменения, сделанные с этим соединением, автоматически назначаются этому пользователю.Я знаю, что это плохой дизайн, но я не могу это изменить.
Теперь мне нужно убедиться, что эта хранимая процедура всегда вызывается, прежде чем менеджер сущностей синхронизирует изменения с базой данных, и пользователь для олицетворения меняется каждый раз.Я попытался просто сделать это, просто заключив вызов хранимой процедуры в EJB без состояния и вызвав этот EJB, прежде чем вносить какие-либо изменения в сущности, но в некоторых случаях это не работает - он действует так, как процедура никогда не вызывалась.Я предполагаю, что процедура была вызвана в другом соединении, чем сами изменения были опубликованы, хотя это должно было произойти в одной транзакции.
Есть ли какой-нибудь чистый способ сделать это?