Spring Boot - 发现预绑定的JDBC连接

时间:2017-07-18 11:55:07

标签: java spring spring-boot spring-data-jpa jpa-2.0

我正在实现一个Spring启动Web服务应用程序并尝试将其与MySQL数据库连接,该数据库也由Laravel(PHP)应用程序连接。在开始交易时发生以下异常:

  

org.springframework.transaction.IllegalTransactionStateException:   找到预绑定的JDBC连接! JpaTransactionManager没有   如果告知要管理,则支持在DataSourceTransactionManager中运行   DataSource本身。建议使用单个   JpaTransactionManager用于单个DataSource上的所有事务,没有   无论是JPA还是JDBC访问。在   org.springframework.orm.jpa.JpaTransactionManager.doBegin(JpaTransactionManager.java:359)   〜[spring-orm-4.3.7.RELEASE.jar:4.3.7.RELEASE] at   org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)   〜[spring-tx-4.3.7.RELEASE.jar:4.3.7.RELEASE] at   com.azampay.core.services.BaseService.startTransaction(BaseService.java:45)   〜[classes /:na] at   com.azampay.core.services.DelegateServiceImpl.getDelegates(DelegateServiceImpl.java:225)   〜[类/:NA]

Application.java 在application.java中,我提供了自己的TransactionManager:

@Bean   
@Primary    
public PlatformTransactionManager transactionManager() {

        JpaTransactionManager jpaTransactionManager = new JpaTransactionManager();
        jpaTransactionManager.setDataSource(dataSource);
        return jpaTransactionManager;   
}

并开始交易:

DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition();
defaultTransactionDefinition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
TransactionStatus status = platformTransactionManager.getTransaction(defaultTransactionDefinition);

解决方案(我已尝试过)

我试图在Application.java中排除DataSourceTransactionManagerAutoConfiguration.class。同样,我将我的交易管理员作为@Primary。但没有任何作用。

任何人都可以帮我解决这个问题吗?我已经搜索过SO和谷歌,但找不到任何解决方案。

0 个答案:

没有答案