我正在使用带有 trx 管理器的 Spring JDBC,通常我使用 @Transaction 注释该方法,如下所示:
@Transactional(propagation=Propagation.REQUIRES_NEW, rollbackFor=Exception.class, isolation=Isolation.READ_COMMITTED)
myTransactionalFunction(){
}
但是对于递归操作,我需要控制传播,有什么方法可以删除 @Transactionl 注释并通过以下方式控制它的运行时:
myTransactionalFunction(boolean newTransaction){
if(newTransaction)
doSomethingLikeTransactionalPropagationRequiresNew();
else
doSomethingLikeTransactionalPropagationRequired();
}
我知道重构组件结构会更好,但在这种特殊情况下,更容易控制它运行时。