我使用了类似的模式,但是在其中创建了帮助
@PostConstruct器,并在构造函数中将注入的实体管理器作为参数传递。每个EJB实例都有其自己的助手,然后保证了线程安全性。
我也有一个变体,即没有注入实体管理器(因为EJB并未完全使用它),所以帮助程序必须使用
InitialContext。在这种情况下,仍然必须使用以下命令将“持久性”上下文“导入”到父EJB中
@PersistenceContext:
@Stateless @PersistenceContext(name="OrderEM") public class MySessionBean implements MyInterface { @Resource SessionContext ctx; public void doSomething() { EntityManager em = (EntityManager)ctx.lookup("OrderEM"); ... } }
但是实际上注入它(即使EJB不使用它)比查找它要容易得多,尤其是对于可测试性而言。
但是回到您的主要问题,我认为注入或查找的实体管理器是一个包装,该包装转发到绑定到事务的基础活动实体管理器。
希望能帮助到你。
编辑
规范中的第3.3节和第5.6节涵盖了该主题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)