为了账号安全,请及时绑定邮箱和手机立即绑定

Spring (5.0.8) 事务和 jdbcTemplate

Spring (5.0.8) 事务和 jdbcTemplate

交互式爱情 2021-08-13 15:11:58
我想要一个经典的事务行为:创建 a,创建 b,如果 b 的创建失败,则回滚 a 的创建。“没那么难,在你的方法上放一个@Transactional spring 注释。”我也是。但它不起作用。我正在使用 spring mvc 5.0.8(spring tx 的相同版本号,上下文,在下面的 pom.xml 中)。数据库是 mysql v.5.7.23首先,我的配置/代码,然后很多人得到一些冗余错误。这是一个服务级别的方法。@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)public B createB(B b) {    //some logic to create a, instance of A    aDao.saveA(a);    //some logic to create b, instance of B    return bDao.saveB(b);}这是数据源、jdbctemplate 和事务管理器配置:@Beanpublic DataSource dataSource() {    DriverManagerDataSource dataSource = new DriverManagerDataSource();    dataSource.setDriverClassName(env.getRequiredProperty("jdbc.driverClassName"));    dataSource.setUrl(env.getRequiredProperty("jdbc.url"));    dataSource.setUsername(env.getRequiredProperty("jdbc.username"));    dataSource.setPassword(env.getRequiredProperty("jdbc.password"));    return dataSource;}@Beanpublic JdbcTemplate jdbcTemplate(DataSource dataSource) {    JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);    jdbcTemplate.setResultsMapCaseInsensitive(true);    return jdbcTemplate;}@Bean("transactionManager")public PlatformTransactionManager getTransactionManager(DataSource dataSource) {    DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();    dataSourceTransactionManager.setDataSource(dataSource);    return dataSourceTransactionManager;}这是我的 pom.xml 的一部分:<dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-context</artifactId></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-tx</artifactId></dependency><dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-context</artifactId></dependency>如果您需要更多来自 Daos 或其他代码的代码,请询问。
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

使用事务时,请确保您已@EnableTransactionManagement@Configuration.

如果没有该注释,您基本上是在没有事务的情况下运行,这使得每个操作都在自己的事务中运行。


查看完整回答
反对 回复 2021-08-13
  • 1 回答
  • 0 关注
  • 163 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信