我有一个bean,它在构造函数中访问JPA,例如从数据库预加载缓存。
在应用程序启动时我收到
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!和古斯?