Spring данных JPA с несколькими объектами не откатывается - PostgreSQL - PullRequest
0 голосов
/ 04 октября 2019

Я использую spring-data-jpa в одном из моих проектов. На уровне сервиса я аннотировал частный метод с помощью @Transactional, а также включил @EnableTransactionManagement в приложении. Когда один из методов сохранения объектов выдает исключение, остальные объекты, которые были сохранены ранее, не откатываются. Кстати, я использую PostgreSQL.

Пожалуйста, дайте мне знать, если я что-то здесь упускаю.

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Spring транзакция будет работать только с public методом. По нему нужно вводить код используя прокси классы для транзакций. Таким образом, опубликование вашего метода решит вашу проблему. Ознакомьтесь с документацией прокси механизма пружины .

0 голосов
/ 04 октября 2019

Spring по умолчанию будет выполнять откат только для исключений времени выполнения (https://docs.spring.io/spring/docs/2.5.x/reference/transaction.html#transaction-declarative).

Если вы хотите выполнить откат для любого исключения, попробуйте добавить:

@Transactional(rollbackFor = Exception.class)
...