gpt4 book ai didi

java - 您可以从 EntityListeners 访问 EntityManagers 吗?

转载 作者:搜寻专家 更新时间:2023-11-01 03:30:38 24 4
gpt4 key购买 nike

我知道 JSR-000220 Enterprise JavaBeans 3.0 Final Release(持久性)规范指出:

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

这看起来非常严格。我们有一种情况,我们想从 EntityListener 中访问 EntityManager。

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

最佳答案

事实上,你是对的。 JPA 规范说明了这一点,在这种情况下,它建议使用 EJB 监听器(或非 Java EE 环境中的 Spring AOP)。

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

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

问候,

关于java - 您可以从 EntityListeners 访问 EntityManagers 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/336881/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com