Обращаюсь к магам-знатокам спринговых проксей для спринга. Смотрите, у меня следующая ситуация:
1. Имею слой сервиса
2. Имею слой JPA, который наследуется от Spring Data
Проблема, с которой столкнулся, заключается в следующем:
Сервис оборачивается в CGLib proxy, а вот JPA репозиторий в JDK Dynamic proxy.
Из-за этого у меня не распространяется транзакция на дальнейший вызов у репозитория.
Т.е в самом JPA я имею некие кастомные запросы (native queries), который выполняют стандартные CRUD операции.
Пытался решить эту проблему следующими путями:
1. Добавлением специального конфига
>The proxyTargetClass property sets whether the dynamic proxy uses the JDK dynamic proxy or the CGlib proxy, true uses the CGlib
@EnableAspectJAutoProxyproxyTargetClass = false)
2. Пытался наследовать класс сервиса от пустого интерфейса
>By default, JDK dynamic proxy is used to create a proxy if the target object only implements any interface. Methods in all interfaces implemented by this object are enhanced by the proxy. If the target object does not implement any interfaces, CGLIB will be used to proxy.
Но все мои попытки оказались бессчетны.