Spring:使用@Transactional(propagation=Propagation.SUPPORTS) 与不使用@Transactional 的方法之间的区别

pri*_*srb 5 spring transactions spring-transactions

@Transactional(propagation = Propagation.SUPPORTS)完全没有@Transactional注释的方法与完全没有注释的方法有什么区别?

@Transactional(propagation = Propagation.SUPPORTS)
public void MyMethod()
Run Code Online (Sandbox Code Playgroud)

对比

public void MyMethod()
Run Code Online (Sandbox Code Playgroud)

如果一个已经打开,没有注释的人是否也使用事务,否则在没有任何事务的情况下继续?

use*_*900 1

从您的链接中,它指出Propagation.SUPPORTS 可能会对同步产生影响:

SUPPORTS 与根本没有事务略有不同,因为它定义了同步将适用的事务范围。因此,相同的资源(JDBC 连接、Hibernate 会话等)将在整个指定范围内共享

  • 所以我仍然没有看到围绕“myMethod”使用“Propagation.SUPPORTS”的好处,数据库资源上的额外同步是什么意思? (3认同)