データベースからいくつかのエンティティ (実際には、特定のインターフェイスを実装する Groovy スクリプト) をロードし、それらを Bean として提供する CDI 拡張機能を作成して、CDI によって注入されたこのインターフェイスのすべての実装を取得できるようにしたいと考えています。私はsthを考えます。次のように:
public class ExtensionClass implements Extension {
@Inject
EntityManager em;
public void afterBeanDiscovery(@Observes final AfterBeanDiscovery event, final BeanManager manager) {
Entity entity = em.find();
//do sth with entity...
}
}
この方法でエンティティマネージャーを注入しようとすると、null になります (それほど驚くことではありません。@Inject が CDI 拡張クラス内で機能するとは思っていませんでした)。
CDI拡張機能内のエンティティマネージャに何らかの方法でアクセスすることは可能ですか(たとえば、BeanManagerを介して)? または、別の方法でデータベースにアクセスする必要がありますか?