我将阅读 EJB 事务边界和事务边界。
让我们集中关注
这是来自链接的修改后的图表。
根据理论,当
现在考虑一下,在
现在当我们从
让我们集中关注
RequiresNew 属性
。这是来自链接的修改后的图表。
method-B
被注释为RequiredNew attribute
。根据理论,当
method-A
调用method-B
时,将启动一个新事务并暂停已经启动的事务,当method-B
返回时,新事务将被提交。
现在考虑一下,在
S1
部分中,我们使用 entitymanager.persist()
创建了一个 JPA 实体,然后将此实体传递给 method-B
,该方法设置了实体的 name
字段。现在当我们从
method-B
返回时,由于实体没有被由 method-A
启动的挂起事务提交到数据库中,它如何能够执行 commit
操作呢?
PS:数据库运行在读提交隔离级别。