Я хочу игнорировать конкретную сущность как @Transactional (используя Spring / Hibernate) - PullRequest
0 голосов
/ 25 октября 2018

Я запускаю приложение SpringMVC и использую аннотации @Transactional в сочетании с HibernateTransactionManager.

В результате, в любом месте моего приложения, в котором я генерирую исключение RuntimeException, мы выполняем откат - это здорово!Все работает отлично.

Но теперь я бы хотел исключить одну сущность из транзакции .Этот объект представляет собой то, что я хочу сохранить (тесты / журналы / ошибки), даже если (, особенно если ) существует исключение RuntimeException, которое отмечает все остальное для отката.

Я бы предпочел не иметьвызвать какой-нибудь репозиторий снаружи моего Перехватчика, который начинает и заканчивает Транзакцию.

Есть ли прямой способ сделать это?

1 Ответ

0 голосов
/ 25 октября 2018

Сущность не является транзакционной.Метод есть.

Если вы хотите, чтобы какая-то часть вашего алгоритма не была частью текущей транзакции, поместите эту часть в метод отдельного компонента и добавьте к ней @Transactional(propagation = REQUIRES_NEW), чтобы выделенная отдельная транзакцияоткрывается и фиксируется при вызове этого метода, не зависит от результата текущей транзакции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...