获取和处理不同EJB中的实体Bean



我开发了一个使用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;}

我的问题是:如果一个JPA实体在EJB a中被提取并传递给EJB B,我可以假设传递的实例属于注入到B中的EntityManager管理的持久性上下文吗?或者我必须提取它的ID并重新提取它吗?

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

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

为了进一步帮助您,我们需要一个具体的例子来说明如何,尤其是为什么在EJB之间传递实体,也许这根本没有必要。

最新更新