Я использую подписчик Redis в своем микросервисе, который прослушивает событие и вызывает службу, имеющую метод @Transactional, который далее вызывает метод CrudRepository deleteAll () для удаления из Oracle БД. Он вызывает TranasactionInterceptor и TransactionAspectSupport и запускает метод invokeWithinTransaction, но метод CrudRepository deleteAll не удаляет данные. В журналах это показывает, что не была запущена транзакция org.hibernate.engine.transaction.internal.TransactionImpl, которая требуется CrudRepository для внутреннего выполнения запроса на удаление. Однако, когда та же служба вызывается как HTTP-запрос через контроллер, она начинает внутреннюю транзакцию org.hibernate.engine.transaction.internal.TransactionImpl, а CrudRepository deleteAll работает нормально.
Почему в потоке спящего режима подписчика сообщений Spring Redis внутренняя транзакция не начинается даже после использования аннотации @Transactional. Этот поток работает с потоком с именем «redisContainer-4». Я использую весеннюю загрузку с включенными OSIV, салатом и redis-server5.0.5. Пожалуйста, помогите мне, где именно что-то не так? Заранее спасибо