我正在设计我的数据库,并且我遇到了实体本身需要访问数据库的情况。
我看了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.
}
}
这可能或(和)首选吗?
答案 0 :(得分:0)
我找到了答案。
根据JSR 338: JavaTM Persistence 2.1,似乎有可能。
3.5.1实体听众
当启用CDI时,Java EE环境中的实体监听器类通过上下文和依赖注入API(CDI)[10]支持依赖注入[43]。使用CDI注入的实体侦听器类还可以定义使用
PostConstruct
和PreDestroy
注释注释的生命周期回调方法。在注入发生之后和实体侦听器实例分别被销毁之前,将调用这些方法。持久性提供程序负责使用CDI SPI创建实体侦听器类的实例;在这种情况下进行注射;调用他们的
PostConstruct
和PreDestroy
方法,如果有的话;并处理实体监听器实例。