如果在数据修改操作上增加注解@Transaction(propagation=Propagation.NOT_SUPPOSED)

来源:3-11 Spring-Task定时任务

书山压力大123

2023-05-09 20:21:48

如果在数据修改操作上增加注解@Transaction(propagation=Propagation.NOT_SUPPOSED)。是不是直到数据库连接关闭才会提交数据到数据库?Spring默认关闭自动提交事务,当执行数据修改操作时MySQL隐式开启事务,但是没有提交,直到数据库连接关闭时,才会提交事务。是不是这样的?
写回答

1回答

好帮手慕小蓝

2023-05-10

同学你好~

    1.Mysql的事务是存在于数据库端的,并不在Java代码中,所以它的事务并不会影响Java代码,也就不会影响Spring的事务了;

    2.Spring事务中Propagation.NOT_SUPPOSED,针对的是在方法调用链中,是否存在多个事务。如果存在多个事务,被设置为Propagation.NOT_SUPPOSED的事务会被挂起,等待被调用方法的事务结束之后,才会执行该事务。

    建议同学系统性的学习一下Spring事务传播机制,可以更好的帮助同学进行理解。

祝学习愉快~

0

0 学习 · 9886 问题

查看课程