0

根据规范,EJB 不支持嵌套事务,所以我想知道的是,假设有 2 个类(父类和子类)。父调用是无状态会话 bean,子调用是普通 java 服务(不是 EJB)。由于 EJB 默认使用容器托管事务,在 Child 的方法中添加 @TransactionAttribute(REQUIRED_NEW) 注释会导致创建新事务还是被容器忽略?

4

1 回答 1

0

JEE 不支持的嵌套事务在外部和内部(嵌套)之间具有活动关系。根据维基百科,它们“在不同的数据库中以不同的方式实现”,因此找不到共同的定义或一组共同的行为。许多数据库甚至不支持它们。

JEE/EJB 所做的是(引用 EJB 规范 v3.2,第 8.6.3.4 章,强调我的):

如果客户端使用事务上下文进行调用,则容器会在开始新事务并调用业务方法之前暂停事务上下文与当前线程的关联。容器在业务方法和新事务完成后恢复挂起的事务关联。

于 2021-09-20T16:04:55.290 回答