我更新了createInjector调用以包含我的JPAPersisteModule。。。
Guice。createInjector(新的ApplicationModule(),新的JpaPersistModule(“simpleRestApplication”)
在我的服务中,我的刀被注入没有问题。。。
@Path("/users")
public class UserService {
@Inject
private UserDAO dao;
public UserService() {
Application.getInjector().injectMembers(this);
}
}
在我的UserDAOImpl上,提供者不会被注射。。。
@Inject
private Provider<EntityManager> em;
这会打印到控制台上:
自定义提供程序java中出现错误。查找com时lang.NullPointerException。谷歌。注射坚持jpa。在定位javax时使用了jpa服务。坚持不懈EntityManager
在我的持久性上。xml
持久化单元声明如下:
<persistence-unit name="simpleRestApplication">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<!-- Configuração do driver -->
<property name="hibernate.dialect"
value="org.hibernate.dialect.Oracle10gDialect" />
<property name="hibernate.connection.driver_class"
value="oracle.jdbc.driver.OracleDriver" />
<!-- Configuração de conexão -->
<property name="hibernate.connection.url"
value="jdbc:oracle:thin:@localhost:1521/XE" />
<property name="hibernate.connection.username"
value="system" />
<property name="hibernate.connection.password"
value="myPassword123" />
<property name="hibernate.connection.autocommit"
value="true" />
<!-- Configuração do hibernate -->
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.connection.release_mode"
value="auto" />
<property name="current_session_context_class"
value="thread" />
<property name="hibernate.connection.autoReconnect"
value="true" />
</properties>
</persistence-unit>
基于此链接,我更改了ApplicationModule
上的configure()
方法,以安装JpaPersistenceModule
并启动PersistService
。。。
@Singleton
private static class JPAInitializer {
@Inject
public JPAInitializer(final PersistService service) {
service.start();
}
}
@Override
protected void configure() {
install(new JpaPersistModule("simpleRestApplication"));
bind(JPAInitializer.class).asEagerSingleton();
// another bindings...
}
现在EntityManager被注入,没有任何错误...
public class UserDAOImpl implements UserDAO {
@Inject
private EntityManager em;
}
我正在尝试使用Guice 3.0,它不会实例化工厂。 SSCCE代码: < code>BarImpl与< code>FooImpl非常相似。这里出了什么问题?还要注意,我在这里尝试了< code>@AssistedInject和< code>@Inject,两者都会导致错误。 输出: 请注意,第 9 行是对 的第一次调用的行
我正在使用JavaSE7开发一个桌面应用程序。应用程序使用多个线程,在创建的每个线程中,都会注入一个DAO类来访问我的数据库。作为持久层,我使用EclipseLink和JPA。EntityManager是使用构造函数注入注入注入到我的DAO类中的,因为它不是线程安全的,所以我使用了如下验证程序: 然而,相同的EntityManager实例被注入到每个DAO中。为了进行设置,我使用了由guice提供
问题内容: 分析了整个互联网,但无法弄清楚为什么会发生这种情况。我有一个最简单的项目(使用jersey-quickstart- grizzly2原型),并且只有一个Jersey资源。我将Guice用作DI,因为CDI也不想与Jersey合作。问题在于,Guice在注入Jersey的资源时无法解析要使用的类。它在外面很好用,但不适用于泽西岛。这是泽西岛的资源: 传输接口: 它的实现: 遵循Googl
我已经验证了@transaction方法是否正确放置,并且在调试堆栈中,我看到事务拦截器和实体管理器是根据对后端的请求创建的(因此没有guice持久性过滤器) 我的感觉表明问题在于会话上下文。我感觉(但我不能真正理解)它在多个请求上重用了我的持久性上下文。 我已经把一些框架放在一起,使这一切都能工作。我使用resteasy作为jax的实现者。guice(4.0beta4)作为cdi实现者,hibe
我尝试了,,和组合,但没有任何效果@注入失败maven quarkus插件构建: [错误]原因:javax。企业注射UnsatisfiedSolutionException:javax类型的未满足依赖关系。坚持不懈EntityManager和限定符[@Default] 我尝试了使用和不使用persistence.xml.我的数据源和application.properties工作正常,因为我可以注
问题内容: 我已经在我的应用程序中以相同的方式使用了本教程:http : //www.benmccann.com/hibernate-with-jpa-annotations- and-guice/ 我的应用程序是JAX-RS Web服务,它将接收许多并发请求并进行数据库更新。 GenericDAOImpl.java实现: } 如果2个并发线程尝试保存实体,我得到 如果我评论交易,保存效果很好。