java - 两个嵌套的 EJB Bean - 只有第一个被注入(inject)了 entitymanager

标签 java jpa ejb-3.0

我有一个有状态的和一个单一的 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/

相关文章:

java - JBoss AS 7 中的 EJB 3 部署

java - 为给定的 PersistenceContext 注入(inject)了多少个 EntityManager?

java - ArrayList 和 Stream 的问题...我必须使用在另一个 ArrayList 中具有属性的元素来流式传输 ArrayList

java - 如何在spark RDD(JavaRDD)中获取记录的文件名

mysql - java.lang.IllegalStateException : Attempting to execute an operation on a closed EntityManagerFactory 错误

java - 防止 Hibernate 加载惰性 ManyToOne

java - 如何使用for循环计算字符串中空格分隔符的数量?

java - 如何为 JTree 上的各个节点设置自定义图标?

java - 在处理 BLOB 字段时如何提高 EclipseLink 的性能?

java - JBoss EJB Bean 未绑定(bind)