Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 能否从EntityListeners访问EntityManager?_Java_Jpa_Jakarta Ee_Entitymanager_Entitylisteners - Fatal编程技术网

Java 能否从EntityListeners访问EntityManager?

Java 能否从EntityListeners访问EntityManager?,java,jpa,jakarta-ee,entitymanager,entitylisteners,Java,Jpa,Jakarta Ee,Entitymanager,Entitylisteners,我知道JSR-000220 Enterprise JavaBeans 3.0最终版本(持久性)规范规定: “一般来说,可移植应用程序不应调用EntityManager或查询操作, 访问其他实体实例,或在生命周期回调方法中修改关系。“ 这似乎极为严格。在这种情况下,我们希望从EntityListener中访问EntityManager 在Jboss/Glassfish或任何其他应用服务器上的侦听器中使用EntityManager时,是否有人遇到过任何不利影响/缺陷?事实上,您是对的。JPA规范说明

我知道JSR-000220 Enterprise JavaBeans 3.0最终版本(持久性)规范规定:

“一般来说,可移植应用程序不应调用EntityManager或查询操作, 访问其他实体实例,或在生命周期回调方法中修改关系。“

这似乎极为严格。在这种情况下,我们希望从EntityListener中访问EntityManager


在Jboss/Glassfish或任何其他应用服务器上的侦听器中使用EntityManager时,是否有人遇到过任何不利影响/缺陷?

事实上,您是对的。JPA规范说明了这一点,在这种情况下,它建议使用EJB侦听器(或者非JavaEE环境中的SpringAOP)

我不知道你的听众的目的。但只需将日志记录、身份验证和路由等交叉关注点放在其中。例如,Hibernate参考文档使用侦听器来审核所有对象修改的日志。一旦EJB监听器可以使用实体管理器,它就可以由EJB监听器(或非JavaEE环境中的SpringAOP)完成。JavaEE规范允许它。因此,EJB侦听器共享其目标EJB使用的相同ENC,并且通过这种方式,还共享相同的持久性上下文(实体管理器)

如果您愿意,请查看我的个人资料。我有很多与ORM相关的问题

问候,