我知道 JSR-000220 Enterprise JavaBeans 3.0 Final Release(持久性)规范指出:
“一般来说,便携式应用程序不应调用 EntityManager 或查询操作,
访问其他实体实例,或修改生命周期回调方法中的关系。”
这显得极其严格。我们遇到这样的情况:我们希望从 EntityListener 中访问 EntityManager。
在 Jboss/Glassfish 或任何其他应用程序服务器上的监听器中使用 EntityManager 时,是否有人遇到过任何不利影响/陷阱?
事实上,你是对的。 JPA 规范指出了这一点,在这种情况下,它建议使用 EJB 侦听器(或非 Java EE 环境中的 Spring AOP)。
我不知道你的听众的目的。但只将诸如日志记录、身份验证和路由之类的横切关注点放在其中。例如,Hibernate 参考文档使用侦听器来审核所有对象修改的日志。一旦 EJB 侦听器可以使用实体管理器,它就可以由 EJB 侦听器(或非 Java EE 环境中的 Spring AOP)来完成。 Java EE 规范允许这样做。因此,EJB 侦听器共享其目标 EJB 使用的相同 ENC,这样,也共享相同的持久性上下文(实体管理器)。
如果您愿意,请查看我的个人资料。我有很多 ORM 相关的问题。
regards,
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)