编程语言
首页 > 编程语言> > java-两个嵌套的EJB Beans-仅第一个获得注入entiy管理器

java-两个嵌套的EJB Beans-仅第一个获得注入entiy管理器

作者:互联网

我有一个有状态的singelton EJB Bean.

有状态bean使用实体管理器(注入)并调用singelton bean.
singelton bean使用实体管理器(已注入).

如果我尝试从有状态bean调用singelton bean,则singelton bean没有注入实体管理器.

不能同时在两个bean中获得一个实体管理器吗?

EJB Bean

@Singleton
@LocalBean
public class AllocationPlanController implements AllocationPlanControllerRemote {

@PersistenceContext
private EntityManager em;

EJB Bean二

@Stateful
@LocalBean
public class AllocationController implements AllocationControllerRemote {

@PersistenceContext
private EntityManager em;

private Allocation allocation;
private AllocationPlan allocationPlan;

AllocationPlanController allocationPlanController = new AllocationPlanController();

解决方法:

EntityManager不会注入到AllocationPlanController中,因为您是在使用其构造函数“手动”创建AllocationPlanController实例.您应该将AllocationPlanController注入AllocationController bean中,并让容器管理其生命周期.

标签:jpa,ejb-3-0,java
来源: https://codeday.me/bug/20191201/2084078.html