使用了jdbcTemplate.update执行完有int返回值但数据没变化,一开始以为是没有提交事务,手动commit后提示Spring已经自动提交事务了,不需要手动commit。查了很多方法,最后发现:
每次执行update操作后,事务都回滚了,也就是无论执行成功与否,事务都会回滚。
解决方案:
①Spring4.2之前的版本可以使用添加下面的注解,设置defaultRollback=false即可。@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
__________________________________________________________________________________
import org.springframework.test.context.transaction.TransactionConfiguration;
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
@Test
public void testAddLoginLog() {
//执行相关的操作
}
②Spring4.2之后的版本可以使用@Rollback(false),Rockback默认值是true,也就是默认自动回滚
——————————————————————————————————
import org.springframework.test.annotation.Rollback;
@Rollback(false)
@Test
public void testAddLoginLog() {
//执行相关的操作
}