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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/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
Jpa 如何在EntityListener中使用EJB?_Jpa_Ejb_Entitylisteners - Fatal编程技术网

Jpa 如何在EntityListener中使用EJB?

Jpa 如何在EntityListener中使用EJB?,jpa,ejb,entitylisteners,Jpa,Ejb,Entitylisteners,我正在设计我的数据库,我达到了实体本身需要访问数据库的情况 我读书 我很好奇在EntityListener中访问EJB的可能性 public class MyEntityListener { @PrePersist private void onPrePersist(final Object object) { // find an EJB // and set those required values // which eac

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

我读书

我很好奇在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.
    }
}
这是可能的还是(或)首选的?

我找到了答案

据报道,这似乎是可能的

3.5.1实体侦听器

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

持久性提供者负责使用CDI SPI创建实体侦听器类的实例;在这种情况下进行注射;调用其
PostConstruct
PreDestroy
方法(如果有);并处理实体侦听器实例


使用Weld+Hibernate(WildFly 8到10)上的CDI
@Inject
,在实体侦听器中注入EJB对我来说一直都很有效。然而,我确实看到用户报告这不起作用,不确定原因,因为他们从未报告所使用环境的确切版本。至少我知道在某些GlassFish版本中(使用EclipseLink而不是Hibernate)这是已知的失败的。@BalusC你确定你注入的是EJB,而不是恰好在类路径中的类的实例吗