私は自分のデータベースを設計しており、エンティティ自体がデータベースにアクセスする必要があるという状況に達しました。EntityListenerでEJBを使用するにはどうすればよいですか?
私は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.
}
}
これは可能ですか?
エンティティリスナーでのEJBの注入は、Weld + Hibernate(WildFly 8〜10まで)のCDI '@ Inject'を使用して、いつも私のために働いています。私は実際には、実際に使用している環境の正確なバージョンを報告していないので、なぜこれがうまくいかないのかを知らせるユーザーを見てきました。少なくとも、これは特定のGlassFishバージョン(Hibernateの代わりにEclipseLinkを使用する)で失敗することがわかっています。 – BalusC
@BalusCクラスパスにあるクラスのインスタンスではなく、EJBを注入してもよろしいですか? –