gpt4 book ai didi

java - 我可以从同一 EJB 中具有 TransactionAttributeType.NOT_SUPPORTED 的另一个方法调用具有 TransactionAttributeType.REQUIRED 的方法吗

转载 作者:行者123 更新时间:2023-12-01 21:10:25 25 4
gpt4 key购买 nike

我有以下代码结构,我需要有关如何从同一 EJB 中的 NOT_SUPPORTED 事务类型方法级联启动本地事务的指南。

@Stateless
@TransactionManagement(value = TransactionManagementType.CONTAINER)
public class SessionBean implements SessionBeanInterface{
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public void methodA() {
methodB();
}

@TransactionAttribute(TransactionAttributeType.REQUIRED)
public void methodB() {

}

}

目前,当我尝试此操作时,我遇到了异常。

No active transaction for PuId=App#EJB.jar#Persistence

最佳答案

您调用“methodB”的方式不会让 EJB 容器有机会为您启动事务上下文。为此,您必须通过远程或本地 View /界面调用该方法。

正是容器为您提供了这些附加功能,因此有必要通过接口(interface)来路由您的调用。 (顺便说一句,这是代理设计模式)。

如果您像上面的代码片段中那样直接调用“methodB”,那么这只是另一个方法调用,无需容器干预。

关于java - 我可以从同一 EJB 中具有 TransactionAttributeType.NOT_SUPPORTED 的另一个方法调用具有 TransactionAttributeType.REQUIRED 的方法吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41263605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com