как получить поддержку транзакций в Spring при загрузке с Solr? - PullRequest
0 голосов
/ 25 октября 2018

Я использую Spring Boot с Solr.
Я вижу Spring-tx в моих разрешенных зависимостях.
Когда я вызываю аннотированный метод @Transactional в bean-компоненте Spring,
a) во время выполнения, я не вижу никаких признаков того, что он был обернут в какой-либо прокси-сервер управления транзакциями, и
b) когда метод выбрасывает RuntimeException, данные не возвращаются.

Репозитории электронной почты / телефона ипросто интерфейсы, которые расширяются

org.springframework.data.solr.repository.SolrCrudRepository

Что мне не хватает?

У метода есть аннотированный @Transactional как в интерфейсе, так и в реализации, на всякий случай ;-)

public interface MyServiceInterface {

    @Transactional
    public CreateDetailsResponse createAllDetails(
            final CreateDetailsRequest createDetailsRequest) throws BusinessException;
}
public class MyService implements MyServiceInterface {

    @Autowired
    private EmailRepository emailRepository;

    @Autowired
    private EmailRepository phoneRepository;

    @Transactional
    public CreateDetailsResponse createAllDetails(
            final CreateDetailsRequest createDetailsRequest) throws BusinessException {

         //method below calls emailRepository.save(emailDocument) 
         saveEmail(); 

         //method below is supposed to call phoneRepository.save(phoneDocument) 
         //but throws RuntimeException before save is called
         savePhone(); 
    }
    //...
}

@Configuration
@EnableSolrRepositories(basePackages = "com.....repository", multicoreSupport = true,
        considerNestedRepositories = true, repositoryBaseClass = SoftCommitSimpleSolrRepository.class)
@EnableAutoConfiguration
public class ConsumersServiceConfiguration {
   //...
   @Bean
    public MyServiceInterface myService() {
        return new MyService();
    }
}

dependencies included from my pom

Предположительно, Solr поддерживает транзакции:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...