i)有什么区别,1)如果我从@transactional内部调用非事务方法,并且2)从同一@transactional方法调用传播级别=支持的@transactional?
ii)问题(i)是相同的豆还是不同的豆,是否有区别?
谢谢
答案 0 :(得分:0)
i)有什么区别
1)如果我从@transactional AND内调用非事务方法
如果您在事务中调用方法而没有任何设置,则事务将扩展到调用方法。
2)调用来自同一@transactional方法的传播级别=支持的@transactional吗?
Propagation.SUPPORTS
带注释的方法将在当前事务中执行,就像调用非事务方法一样。
在javadoc中记录了设置@Transactional(propagation = Propagation.SUPPORTS)
与未设置@Transactional
之间的唯一区别:
注意:对于具有事务同步的事务管理器,PROPAGATION_SUPPORTS与根本没有事务略有不同,因为它定义了将应用同步的事务范围。结果,将为整个指定范围共享相同的资源(JDBC连接,休眠会话等)。请注意,这取决于事务管理器的实际同步配置。
ii)问题(i)是相同的豆还是不同的豆,是否有区别?
使用AOP代理默认使用Spring @Transactional
注释。
在同一类中从methodB
调用methodA
时,不会为methodB
(即@Transactional
中的methodB
注释)激活AOP代理被完全忽略)。
当您从其他班级打电话时,其行为与i)