我正在使用org.springframework.transaction.annotation.Transactional
并且正在调用我只希望能够从使用@Transactional
注释的方法调用的方法。
由于我不会污染这个问题的原因,我想要作为事务的一部分调用的方法永远不会被事务边界调出,我想强制执行此操作。
我是否可以使用注释或类似方法来确保只能从使用@Transactional
注释的方法成功调用这些方法?
答案 0 :(得分:1)
在最简单的情况下,您可以使用>>> x, y = {}, {}
>>> x == y
True
>>> hash(x) == hash(y)
False
>>> x[{}] = 3
>>> x[{}]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: {}
(即Propagation.MANDATORY
)交易传播,而不是默认@Transactional(propagation=Propagation.MANDATORY)
。
如果您使用程序化交易,则检查Propagation.REQUIRED
获取者 - 即使您的传播为TransactionStatus
,您也可以验证REQUIRED
是否返回false。