3.2.2.9. 更新您的应用程序以遵循 JPA 2.0 规格
介绍
JPA 2.0 规格要求持久化上下文不能在 JTA 事务外部传播。如果您的应用程序只使用事务范围的持久化上下文,JBoss EAP 6 里这个行为和之前版本的一样,无需进行修改。然而,如果您的应用程序使用了扩展的持久化上下文(XPC)以允许数据修改的排队或批处理,您可能需要修改您的应用程序。
持久化上下文的传播行为
如果您的应用程序有一个 stateful session bean Bean1 ,它具有扩展的持久化上下文,并调用另一个使用事务范围的持久化上下文的 stateless session bean Bean2,您会看到下列结果:
- 如果
Bean1启动了一个 JTA 事务并在 JTA 事务活动时调用了Bean2的方法,JBoss EAP 6 里的行为将和之前版本一样,无需进行修改。 - 如果
Bean1没有启动 JTA 事务且调用Bean2的方法,JBoss EAP 6 则不会将扩展的持久化上下文传播到Bean2。这个行为和会将持久化上下文传播至Bean2的以前版本不一样。如果您的应用程序期望用事务性实体管理者传播扩展持久化上下文,您需要修改应用程序以在活动的 JTA 事务里进行调用。