在春豆中开始新交易
我们有:
@Transactional(propagation = Propagation.REQUIRED)
public class MyClass implementes MyInterface { ...
MyInterface 只有一个方法:.go()
当go()执行时,我们启动一个新事务,当方法完成时提交/回滚 - 这很好。
现在让我们假设在go()中,我们在MyClass中调用一个私有方法,该方法具有.似乎Spring“忽略”了REQUIRES_NEW注释,并没有开始新的交易。我相信这是因为Spring AOP在接口级别(MyInterface)上运行,并且不会拦截对MyClass方法的任何调用。这是正确的吗?@Transactional(propagation = Propagation.REQUIRES_NEW
有没有办法在go()交易中开始新的交易?调用另一个已将事务配置为REQUIRES_NEW的 Spring 受管 Bean 的唯一方法是什么?
更新:添加当客户端执行时,它们通过对接口而不是类的引用来执行此操作:go()
@Autowired
MyInterface impl;
impl.go();