我有一个有状态的和一个单一的 EJB Bean。
有状态 bean 使用实体管理器(注入(inject))并调用 singelton bean。 singelton bean 使用实体管理器(注入(inject))。
如果我尝试从有状态 bean 调用 singelton bean,则 singelton bean 不会注入(inject)实体管理器。
难道不能同时在两个 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
未注入(inject)到 AllocationPlanController
中,因为您是“手动”使用其构造函数创建 AllocationPlanController
实例。您应该将 AllocationPlanController
注入(inject)到 AllocationController
bean 中,让容器管理它的生命周期。
关于java - 两个嵌套的 EJB Bean - 只有第一个被注入(inject)了 entitymanager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8850459/