我对所有人都有疑问,请帮我解释一下
我有一个标有@Transaction注释的A类,这个类有方法a
我有B类也标记了@Transaction注释,这有方法b
我有没有标记@Transaction注释的C类,这有方法c
*
(呼叫b)和(呼叫c)有什么区别?
*
答案 0 :(得分:2)
JSON.stringify(req.body);
的默认传播是@Transaction
,这意味着,如果事务存在,那么,使用那个,否则创建一个。
因此...
Required
... - >创建事务,因为不存在
... a()
- >事务存在,使用那个,@ transaction什么也不做,所以b()
在b()
的交易中运行
...和...
a()
... - >创建事务,因为不存在
... a()
- >交易存在,没有c()
,因此将使用@Transactional
'
因此,两种情况都非常相同。例如,如果a()
有d()
:
@Transcational(propagation=Propagation.REQUIRES_NEW)
... - >创建事务,因为不存在
.... a()
- >交易存在,但d()
需要一个新的,所以新建一个