2008-12-03 57 views
4

我知道,JSR-000220企业JavaBeans 3.0最终版(持久)规范规定:你能从EntityListeners中访问EntityManagers吗?

“一般来说,便携式应用不应以EntityManager的或查询操作, 访问其他实体的情况下,或修改在关系生命周期回调方法“。

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

在Jboss/Glassfish或任何其他应用程序服务器上使用EntityManager时,是否有人遇到过任何不利影响/坑?

回答

2

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

我不知道听众的声音。但是,只能将横切关注点放在日志,身份验证和路由中。例如,Hibernate参考文档使用侦听器来审计所有对象修改的日志。一旦EJB侦听器可以使用实体管理器,就可以由EJB侦听器(或非Java EE环境中的Spring AOP)完成。 Java EE规范允许它。因此,EJB侦听器共享与其目标EJB使用的ENC相同的ENC,并且这样也共享相同的持久化上下文(实体管理器)。

如果您愿意,请参阅我的个人资料。我有许多ORM相关的问题。

关于,

相关问题