【问题标题】:Fetching and Processing Entity Beans in different EJBs在不同的 EJB 中获取和处理实体 Bean
【发布时间】:2020-03-23 11:45:42
【问题描述】:

我开发和应用程序使用 JPA 和无状态 EJB。基本上,应用程序包括负责实现业务案例的 EJB 以及负责从底层数据库中获取和删除数据的 EJB。

例子:

public interface UserContextAccessEJBLocal {

 /**
  * Persists the passed instance of {@link UserContex}.
  * 
  * @param userContext an instance of {@link UserContext}
  * @throws NullPointerException if userContext is null. 
  * @throws IOException if an I/O related error occurs.
  */
 void remove(UserContext userContext)
            throws IOException;}

我的问题:如果在 EJB A 中获取 JPA 实体并将其传递给 EJB B,我是否可以假设传递的实例属于由注入 B 的 EntityManager 管理的持久性上下文,或者我必须提取它的 ID 重新取回了吗?

关于我的问题,无状态和有状态 EJB 有区别吗?

【问题讨论】:

    标签: ejb-3.0 java-ee-7 jpa-2.1


    【解决方案1】:

    您应该避免在不同事务之间传递实体,但在 EJB 之间传递实体不是问题,只要调用作为加载实体的调用的同一事务的一部分发生。

    为了进一步帮助您,我们需要一个具体示例来说明您如何以及为什么在 EJB 之间传递实体,也许一开始这甚至没有必要。

    【讨论】:

    • 谢谢!我现在必须实现这部分,所以目前无法向您展示实际代码。
    猜你喜欢
    • 1970-01-01
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    相关资源
    最近更新 更多