Маппинг исключений на DataAccessException (v1.0.0)

Маппинг исключений на DataAccessException (v1.0.0)

По непонятным причинам и вопреки Spring-овой консистентной иерархии исключений, в случае ошибки SDJ выбрасывает кастомный DbActionExecutionException вместо DataAccessException.

На исправленией этой проблемы есть две древних задачи в GitHub Issues проекта:

и никаких подвижек в её исправлении несколько лет.

Пока у команды не дошли руки до решения этой проблемы, её можно решить локально добавив в контекст приложения PersistenceExceptionTranslator:

@Component
class SdjPersistenceExceptionTranslator : PersistenceExceptionTranslator {

    override fun translateExceptionIfPossible(ex: RuntimeException): DataAccessException? =
        (ex as? DbActionExecutionException)?.cause as? DataAccessException

}