EntityChangedEvent :: AfterCommit :: Объект не сохраняется, если появился Exception

Работаю с события сущностей.

Есть метод, которые вызывается после коммита сущности, то есть использую AfterCommit.
Если во время вызова этого метода возникает какой-то Exception, то объект для которого вызывался этот метод не сохраняется, хотя заявлено, что обработка изменений после коммита, вызывается в другой транзакции и по факту не должно влиять на сохранение.

Мне нужно, чтобы объект сохранялся в базе данных, если даже возникает какой-то Exception.

Добрый день!

Только что попробовал сделать примитивный листенер, типа такого:

@Component
public class SchoolEventListener {

    @TransactionalEventListener
    public void onSchoolChangedAfterCommit(EntityChangedEvent<School> event) {
        throw new RuntimeException("Exception from the listener");
    }
}

Эксепшн из этого листенера никак не мешает сохранению объекта. У вас точно эксепшн возникает в after commit слушателе?

Использую аннотацию @EventListener

Мне нужно отлавливать Exception в handler и выдавать сообщение на уровне UI, но при использование аннотации @TransactionalEventListener Exception почему-то не отлавливается в handler

Посмотрите на раздел документации Handling Changes After Commit.

To handle EntityChangedEvent after the changes are saved to the database and the transaction is committed, create a bean method annotated with @TransactionalEventListener.

Note that exceptions occurred in an “after commit” event listener are not propagated to the calling code and not logged. So it is recommended to wrap your code in the try-catch clause.