如何在Solr的Spring Boot中获得事务支持?

时间:2018-10-25 08:48:34

标签: java spring spring-boot solr spring-transactions

我正在将Spring Boot与Solr一起使用。
我可以在已解决的依赖项中看到Spring-tx。
当我在Spring bean中调用带有@Transactional注释的方法时,
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

0 个答案:

没有答案