Java 交易不存在';t适用于弹簧靴+;Mybatis
我的应用程序使用SpringBoot+MyBatis,当我使用@Transactional注释时,它不会在抛出异常时回滚 我的MybatisConfiguration.java是:Java 交易不存在';t适用于弹簧靴+;Mybatis,java,spring,mybatis,Java,Spring,Mybatis,我的应用程序使用SpringBoot+MyBatis,当我使用@Transactional注释时,它不会在抛出异常时回滚 我的MybatisConfiguration.java是: @Configuration @EnableTransactionManagement @MapperScan("com.mode.dao") public class MybatisConfiguration implements EnvironmentAware { private RelaxedPro
@Configuration
@EnableTransactionManagement
@MapperScan("com.mode.dao")
public class MybatisConfiguration implements EnvironmentAware {
private RelaxedPropertyResolver properties;
@Override
public void setEnvironment(Environment env) {
this.properties = new RelaxedPropertyResolver(env, "mode.jdbc.");
}
@Bean(name = "datasource", destroyMethod = "close", initMethod = "init")
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(properties.getProperty("driverClassName"));
dataSource.setUrl(properties.getProperty("url"));
dataSource.setUsername(properties.getProperty("username"));
dataSource.setPassword(properties.getProperty("password"));
dataSource.setMaxActive(properties.getProperty("maxActive", Integer.class, 1));
dataSource.setInitialSize(properties.getProperty("initialSize", Integer.class, 1));
return dataSource;
}
@Bean
public DataSourceTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
@Bean
public SqlSessionFactory sqlSessionFactory() throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource());
return sessionFactory.getObject();
}
}
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
服务代码快照为:
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public Map<String, String> productImport(Product product) throws Exception {
.....
}
build.gradle是:
// Spring Boot MVC
compile("org.springframework.boot:spring-boot-starter-web")
// Spring Boot jdbc
compile("org.springframework.boot:spring-boot-starter-jdbc")
// Mybatis
compile("org.mybatis:mybatis:${mybatisVersion}")
compile("org.mybatis:mybatis-spring:${mybatisSpringVersion}")
我以前使用过spring+mybatis,@Transactional注释工作得很好,但当我改为spring boot时,它就不工作了
任何帮助或想法将不胜感激,提前感谢 您确定没有从其他具有不同
rollback或
设置或捕获异常的方法调用不回滚的方法吗?也就是说,您确定事务边界是由有问题的方法定义的吗?它不会从任何其他具有不同回滚的方法调用,我直接从不包含任何@Transactional注释的controller调用此方法。