我正在尝试在具有事务性钩子的方法中进行以下详细的独立调用:
@Transactional(transactionManager = "tenantTransactionManager", isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
void method1(){
//business logic 1
metohd2();
//business logic 2
}
method2(){
TransactionSynchronizationManager.registerSynchronization( new TransactionSynchronization() {
@Override
public void afterCommit( boolean readOnly ) {
//businessLogic to be done after commit
}
});
}
**EXPECTED BEHAVIOUR:**
要在单独的事务中运行method2,您必须做两件事:
由于以下原因而将其移动到另一个类(EJB):请参阅:EJB Transactions in local method-calls
您的应用程序容器(如Payara)将为@Stateless类/ EJB中的所有方法自动创建事务,就像它们都被@TransactionAttribute(TransactionAttributeType.REQUIRED)注释一样。