Java 两个嵌套的EJB bean—只有第一个获得Entity manager注入
我有一个stateful和一个singelton EJB Bean 有状态bean使用实体管理器(注入)并调用singelton bean。 singelton bean使用实体管理器(注入) 如果我尝试从有状态bean调用singelton bean,singelton bean不会被注入实体管理器 不可能同时在两个bean中获得实体管理器吗 EJB BeanJava 两个嵌套的EJB bean—只有第一个获得Entity manager注入,java,jpa,ejb-3.0,Java,Jpa,Ejb 3.0,我有一个stateful和一个singelton EJB Bean 有状态bean使用实体管理器(注入)并调用singelton bean。 singelton bean使用实体管理器(注入) 如果我尝试从有状态bean调用singelton bean,singelton bean不会被注入实体管理器 不可能同时在两个bean中获得实体管理器吗 EJB Bean @Singleton @LocalBean public class AllocationPlanController impleme
@Singleton
@LocalBean
public class AllocationPlanController implements AllocationPlanControllerRemote {
@PersistenceContext
private EntityManager em;
EJB Bean 2
@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,让容器管理它的生命周期。不要通过构造函数创建新的AllocationPlanController,请尝试这样注释它:
@EJB
AllocationPlanController allocationPlanController;
然后容器将把这个bean注入您的
AllocationController
,由于容器将注入它创建的bean,它已经注入了它的依赖项,因此您将为em
找到一个非空值。您能发布一些代码吗?也许看看你是如何注射和调用豆子的,任何有助于进一步澄清的东西