определенная валиция.
Я добавил Hibernate interceptor, который это проверяет и выкидывает org.hibernate.CallbackException.
При этом, я хочу чтобы сервис метод был
1. Транзакционным
2. Не происходит роллбэк на эксепшон интерсептора
3. Происходил роллбэк на другие эксепшоны.
То-есть выглядит это так:
Есть транзакционный сервис метод, который в цикле запускает некий метод, который выбрасывает CallbackException после неудачной валидации, но там в транзакции это оборачивается в JpaSystemException, который я ловлю и просто логаю warning. И если поймали - просто переходим на некст итерацию. Если выпадет условный IllegalArgumentException - падаем и роллбэк.
Сейчас это работает когда метод не транзакционный, но тогда не будет роллбэка на другие эксепы.
@Transactional(noRollbackFor = JpaSystemException.class) = не помогает
Че делать?)
Могу скинуть код
Руками метод в транзакции можно запустить и роллбэк прописать.
Ну можно не через аннотации транзакции накручивать, а управляя вручную. Почитай про TransactionTemplate - может покатит.
Обсуждают сегодня