Jpa 如何在EntityListener中使用EJB?
我正在设计我的数据库,我达到了实体本身需要访问数据库的情况 我读书 我很好奇在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
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.
}
}
这是可能的还是(或)首选的?我找到了答案
PostConstruct
和PreDestroy
注释注释的生命周期回调方法。这些方法将分别在注入发生之后和实体侦听器实例销毁之前调用
持久性提供者负责使用CDI SPI创建实体侦听器类的实例;在这种情况下进行注射;调用其PostConstruct
和PreDestroy
方法(如果有);并处理实体侦听器实例
使用Weld+Hibernate(WildFly 8到10)上的CDI
@Inject
,在实体侦听器中注入EJB对我来说一直都很有效。然而,我确实看到用户报告这不起作用,不确定原因,因为他们从未报告所使用环境的确切版本。至少我知道在某些GlassFish版本中(使用EclipseLink而不是Hibernate)这是已知的失败的。@BalusC你确定你注入的是EJB,而不是恰好在类路径中的类的实例吗