コンストラクターでJPAにアクセスするBeanがあります。たとえば、データベースからキャッシュをプリロードします。
アプリケーションが起動すると、私は受け取ります
Caused by: java.lang.IllegalStateException: Unable to create Guice injector
Guiceインジェクションの原因でアプリケーションの起動に失敗する
1) Error injecting constructor, play.exceptions.JPAException: The JPA context is not initialized.
JPA Entity Manager automatically start when one or more classes annotated with the @javax.persistence.Entity annotation are found in the application.
この問題の根本的な原因は、GuiceがJPAエンティティマネージャーを再生する前に私のBeanのインスタンスを作成していることです。残りのJPAコードは正常に機能します。BeanのコンストラクターでJPA呼び出しにコメントすると、それも正常に機能します。
次のコードスニペットを使用して、Beanを構成します。
public class MainGuiceModule extends AbstractModule {
@Override
protected void configure() {
bind(UserManager.class).to(UserManagerImpl.class).in(Singleton.class);
...
}
}
問題は、Play!を使用してコンストラクターからJPAにアクセスする方法です。とGuice?