spring MVC 我想在控制层或者Service添加一个事务,就是同时对一张表的两种操作

2025年05月06日 14:25
有3个网友回答
网友(1):

这是spring的批注式事务管理
你应该去找spring的书 或 官方文档看看

这里你需要理解的是 事务的传播行为
传播行为主要是用来告知何时该开始一个新的事务 或者 何时暂停一个事务等

如:Propagation.REQUIRED 就是传播行为中的一种
表示如果它的外部已经存在一个事务;则无需再开始新的事务;(他自然在这个事务中)
如果外面没有事务;则开始一个新的事务
所有这种事务声明是可以嵌套的(虽然事务声明可以嵌套,但事务本身并没有嵌套,当然事务是不可嵌套的;正像上面讲的一样)
---------------------------------------------------------------------------
如你的问题中 同时对一张表的两种操作
如果这两个操作封装在不同的方法中,只需将这两个方法都声明为Propagation.REQUIRED
并把更上一层调用这两个子方法的 方法也声明为Propagation.REQUIRED
这种方式比较灵活,两个方法即可独立开始事务;也可加入上层事务;具体要看业务需要

如果这两个操作封装在一个方法中,只需要将这个方法都声明为Propagation.REQUIRED即可

网友(2):

@Transactional(readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)

@Transactional(readOnly = true)

这样??

网友(3):

可以通过代理实现。。。