如何在EntityListener中使用EJB?

时间:2016-07-26 05:56:51

标签: jpa ejb entitylisteners

我正在设计我的数据库,并且我遇到了实体本身需要访问数据库的情况。

我看了Why sometimes a reference to an EntityManager inside JPA entities is needed

我对在EntityListener中访问EJB的可能性感到好奇。

public class MyEntityListener {

    @PrePersist
    private void onPrePersist(final Object object) {
        // find an EJB
        // and set those required values
        // which each resides in a specific table.
    }
}

这可能或(和)首选吗?

1 个答案:

答案 0 :(得分:0)

我找到了答案。

根据JSR 338: JavaTM Persistence 2.1,似乎有可能。

3.5.1实体听众

  

当启用CDI时,Java EE环境中的实体监听器类通过上下文和依赖注入API(CDI)[10]支持依赖注入[43]。使用CDI注入的实体侦听器类还可以定义使用PostConstructPreDestroy注释注释的生命周期回调方法。在注入发生之后和实体侦听器实例分别被销毁之前,将调用这些方法。

     

持久性提供程序负责使用CDI SPI创建实体侦听器类的实例;在这种情况下进行注射;调用他们的PostConstructPreDestroy方法,如果有的话;并处理实体监听器实例。