2016-07-26 3 views
2

私は新しいHibernate 5 Bootstrap APIで遊んでいます。以前の/従来のAPIと比較して簡単にSessionFactoryとファミリを組み立てることができ、とても興奮しました。GuiceのHibernate 5エンティティリスナー

ここで、基本的にエンティティリスナーの作成と依存性注入をGuiceに委譲する独自のListenerFactoryを提供したいと思います。

私はSessionFactoryBuilderからapplyBeanManagerを除き、それを行う方法を見つけることができませんでした:

sessionFactoryBuilder.applyBeanManager(new ListenerFactory() { 
    @Override 
    public void release() { 
    } 

    @Override 
    public <T> Listener<T> buildListener(final Class<T> listenerClass) { 
    return() -> injector.getInstance(listenerClass); 
    } 
}); 

残念ながら、これはHibernateはListenerFactoryがNULLであることを期待bcの仕事(およびデフォルトListenerFactoryを使用しています)、またはことはなかったですBeanManagerのインスタンス

私自身のListenerFactoryを提供する別の方法があるのだろうか?

ありがとうございました。

答えて

1

これは、BeanManagerがCDI用に設計されているためです。 CDIを超えてカスタマイズしたい場合、ユースケースと何をしたいのかを記述したJIRAの問題を開く必要があります。

sessionFactory 
.getServiceRegistry() 
.getService(EventListenerRegistry.class) 
.prependListeners(EventType.LOAD, new MyGuiceEntityListener()); 
+0

ありがとう:あなたは(私はそれが層のカプセル化を壊すので、本当に奇妙見つける。)あなたのエンティティへの依存関係を注入する場合

あるいは、あなただけのエンティティが作成される方法をカスタマイズするためにLoadEventListenerを使用することができますJIRAの問題が発生します。 –

関連する問題