在不同的 EJB 中获取和处理实体 Bean
Posted
技术标签:
【中文标题】在不同的 EJB 中获取和处理实体 Bean【英文标题】:Fetching and Processing Entity Beans in different EJBs 【发布时间】: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 有区别吗?
【问题讨论】:
【参考方案1】:您应该避免在不同事务之间传递实体,但在 EJB 之间传递实体不是问题,只要调用作为加载实体的调用的同一事务的一部分发生。
为了进一步帮助您,我们需要一个具体示例来说明您如何以及为什么在 EJB 之间传递实体,也许一开始这甚至没有必要。
【讨论】:
谢谢!我现在必须实现这部分,所以目前无法向您展示实际代码。以上是关于在不同的 EJB 中获取和处理实体 Bean的主要内容,如果未能解决你的问题,请参考以下文章