Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java J2EE中的应用程序管理事务_Java_Jakarta Ee_Transactions_Cdi - Fatal编程技术网

Java J2EE中的应用程序管理事务

Java J2EE中的应用程序管理事务,java,jakarta-ee,transactions,cdi,Java,Jakarta Ee,Transactions,Cdi,有没有人举过一个例子,说明从J2EE6容器中CDI管理的bean开始、提交/回滚事务的最佳方法 我遇到了一个特殊的情况,带注释的方法对我来说不起作用(我从同一类中的另一个方法调用该方法),我需要手动设置事务边界。我想知道我可以在代码中做些什么来复制以下注释的行为: @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW) TIA您可以编写用于事务管理的拦截器,然后可以为您的方法添加此拦截器。看 在JavaEE7中,我们为声明式事务

有没有人举过一个例子,说明从J2EE6容器中CDI管理的bean开始、提交/回滚事务的最佳方法

我遇到了一个特殊的情况,带注释的方法对我来说不起作用(我从同一类中的另一个方法调用该方法),我需要手动设置事务边界。我想知道我可以在代码中做些什么来复制以下注释的行为:

@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)

TIA

您可以编写用于事务管理的拦截器,然后可以为您的方法添加此拦截器。看


在JavaEE7中,我们为声明式事务管理和EJB提供了神奇的(:)@Transactional注释。

谢谢,我正在寻找更直接的东西。我发现了一个将at UserTransaction注入CDI bean的示例,但我找不到一种方法来模拟TransactionAttributeType.REQUIRES_NEW的行为,因为它将事务信息保存在ThreadLocal中,如果我在本地上下文中已经有事务,它将抛出异常。仅供参考,我工作(被黑客攻击)通过使用@TransactionaAttribute注释创建一个新类来解决这个问题。由于新类是由CDI注入的,因此事务随后由容器处理(我更喜欢容器)。我确实发现互联网上关于这个的文档很少。你是否将你的类注释为@Stateless?JavaEE6中的@TransactionAttribute注释仅适用于EJB。