jakarta-ee - 访问容器管理的 bean 中的事务状态

标签 jakarta-ee ejb jta distributed-transactions

我有一个 @Stateless EJB使用容器管理事务。有没有办法访问 javax.transaction.UserTransaction 的“状态”? ?即调用UserTransaction.getStatus()在bean方法里面?

我知道访问 UserTransaction在容器管理的 bean 中被禁止,但我想知道,有没有其他方法可以访问 getStatus()方法?

最佳答案

如果您只需要知道事务是否标记为回滚,则使用 E​​JBContext.getRollbackOnly。否则,在 JTA 1.1 中,您可以使用 TransactionSynchronizationRegistry:

TransactionSynchronizationRegistry tsr = (TransactionSynchronizationRegistry)
  new InitialContext().lookup("java:comp/TransactionSynchronizationRegistry");
int status = tsr.getTransactionStatus()

关于jakarta-ee - 访问容器管理的 bean 中的事务状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6240897/

相关文章:

java - JPA2 :i use a JoinColumn as queryparam to create a query and a exception occurred , 为什么

jakarta-ee - EJB 中如何管理 CMT 和 BMT?

java - 我应该学习什么来提高我的 Java 技能?

java - 扩展 Java 可序列化类的目的是什么?

jsp - 将 JSP 页面包含到另一个 JSP 页面中,如何避免多个 HEAD/BODY 部分?

Java EE - 无法通过 IntelliJ 上的 JDBC 连接到数据库

java - EJB定时器: How to Start and stop EJB timer from client side?

java - 异常 : java. sql.SQLSyntaxErrorException: 'AIRPLANE_ID' 不是表中的列

java - 如何在 Infinispan 中使用 JTA 事务?

java - J2EE 实体中的深度预加载