问题标签 [guice-persist]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
guice - Google guice 的实施不起作用
我是 Google guice 的初学者。我已经像下面这样编写了插入 Oracle 和 postgres db 的程序,我在这里发布了一个非常简单的 coede 但是,当我运行它时,我收到一个错误
线程“主”com.google.inject.ConfigurationException 中的异常:Guice 配置错误:
1) 没有绑定 com.googleguice.contract.ConsumerContract 的实现。同时定位 com.googleguice.contract.ConsumerContract
在 com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:961) 在 com.google.inject.inject.internal.InjectorImpl 的 com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1004) 1 错误.getInstance(InjectorImpl.java:1013) 在 com.googleguice.client.ClientClass.main(ClientClass.java:15)
}
请帮助解决它。谢谢
java - 将多个 persistence.xml 文件连接在一起
我正在使用 guice persist,它依赖于我在 persistence.xml
. 据我所知,没有办法PersistenceUnitInfo
在运行时传递给 guice-persist。
但是,在我有多个数据库的情况下,我将模型放在单独的项目中,因此需要单独的persistence.xml
文件。
有没有办法让 maven 在编译时为我加入这些文件,以避免我拥有一个包含所有持久性单元的文件?
hibernate - 休眠:无法找到持久性:java.math.BigDecimal
我正在尝试结合 guice、jpa 和休眠。休眠的初始化看起来不错,直到我尝试通过 DAO 访问映射的类。我找到了所有的帮助请求,但我的问题(目前)不是“自定义类”(至少我不这么认为)。
加起来没什么特别的。我得到了我的 persistence.xml,它定义了我的类和其中一个类的基本(persist、findById、remove)DAO。
如果我尝试使用该 DAO 访问数据库,例如
我收到以下错误(我收到与java.lang.Long完全相同的错误):
我没想到某些 java-core 类会出现问题。
这是我配置的所有 gradle 依赖项:
我错过了什么?您需要更多信息来帮助我吗?
编辑#1:我尝试访问的映射类。它是使用 Eclipse(最新的 JEE 版本)自动创建的:
编辑#2:使用的 DAO 类。除了泛型的类型定义之外,什么都没有:
java - 如何从 Guice 获取 EJBContext
我正在尝试为 j2ee 应用程序创建一些集成测试。DAO 层需要 aEJBContext
以便它可以调用context.getUserTransaction()
和utx.begin()
。使用Guice我设法得到了EngityManager
工作。但EJBContext
现在是空的。任何想法如何使它工作。
java - guice - @Transactional - 不工作
我正在使用 guice 4.1 和持久扩展,并希望 @Transactional 能够工作,但事实并非如此。我关注了wiki并阅读了这篇文章,但无济于事:
在 JavaSE 中使用 Hibernate 和 Guice 管理事务
只是为了重新迭代......我正在做:
- 取决于 guice-persist
- 使用谷歌的@Transactional 注释
- 仅在由 guice 管理的公共或受保护方法上使用注释
- 启动 PersistService ...
hibernate - 使用 Guice / GuicePersist 注入 Hibernate 拦截器
我将 JPA 与Guice Persist用于我的 GAE 项目,将Restlet用于 REST 接口。在引擎盖下,好的旧Hibernate提供了 JPA 服务。
这就像一个魅力,Guice 将必要的 JPA 部分注入到我的类中,EntityManager
例如RestletServlet
;
现在我想使用 aSessionInterceptor
将创建/编辑时间戳和当前活动用户插入到我的实体中。在旧项目中,我使用HibernateUtil
带有 ThreadLocal 变量的静态类来存储会话。在我的新项目中,我想用 Guice 解决这个问题。Guice 需要EntityManager
在 my中注入一个,SessionInterceptor
这样我就可以从数据库中加载当前的活动用户。
需要在SessionInterceptor
Hibernate 上下文中创建,并且不允许在启动后对其进行配置。因此我创建了一个SessionInterceptorFactory
使用 Guice Injector 的。在persistence.xml
这行得通(是的,它很丑),我有一个SessionInterceptor
Guice Injection。
但是当我尝试这段代码时;
[错误] 1) 没有绑定 javax.persistence.EntityManager 的实现。[错误] 在定位 com.google.inject.Provider 时 [错误]
为 com.ludus.server.hibernate.SessionInterceptor.(SessionInterceptor.java:20) 的第一个参数 [错误] 在定位 com.ludus.server.hibernate 时。会话拦截器
我需要将bound
JPA(Hibernate)配置与SessionInterceptor
Guice 中的()连接起来,就像我对RestletServlet
.
谁能帮我解决这个 Guice 配置?
除此之外,当前SessionInterceptorFactory
是“肮脏的 Guice hack”,是否有干净的 Guice 解决方案?
java - 使用 Guice 注入 EntityManager
在我在关于 Guice 注入的帖子中收到了一个很好的回答之后,我想知道,你是否也可以帮助我在 Guice 中注入 EntityManagers。
我已经阅读了有关 Guice JPA的文章https://github.com/google/guice/wiki/JPA 。我的代码如下所示(我的工作需要提供程序):
提供者:
DatabaseControllerImplementation的构造函数:
我称之为顶层:
用我的数据库实例化 JAPersistService。
我收到一个错误,no Implementation for EntityManager was bound
但如果我打电话
实例化工作正常,数据库工作正常,一切都很简单。
所以我的猜测是,我的 GuiceModule 有问题。如上所示,当我不调用 时new ModuleBinder()
,一切正常。
- - - - - - - - - - - - - - -编辑 - - - - - - - - - - -----------------
重写了上面的部分。
Tl;博士版:ModuleBinder 搞砸了 EntityManager 的注入 - 为什么?
--------------------------发现错误---------- ----------
我觉得有点傻,我发现了错误。查看时ModuleBinder
您可以看到,它将所有内容绑定为EagerSingleton
,但显然,EntityManager
尚不存在(PersistService 在创建 Injector 后启动)。我在这里创建了一个新帖子:https ://stackoverflow.com/questions/47181835/jpapersistencemodule-guice-injector
愿它帮助其他人!
此致,
约瑟夫背包
hibernate - 没有persistence.xml的Hibernate和Guice
我正在尝试找到一种使用 Guice 4.1 和 Hibernate 5.2 的方法
我检查了文档,似乎我们需要使用 persistence.xml 文件。我想知道我们是否可以在没有这个 persistence.xml 的情况下使用 Guice 和 Hibernate?有没有办法做persistence.xml做的事情,但以编程方式?
谢谢。
java - 批量大小不适用于 Google Guice + JPA + Hibernate
我将Google Guice与 JPA 和 Hibernate 一起用作依赖注入和事务目的。
我已经<property name="hibernate.jdbc.batch_size" value="20" />
在我的persistence.xml
文件中添加了。
这是我的保存实体列表 DAO 代码:
为什么它没有以 20 的批量插入数据库?
guice-persist - Guice Persist 具有多个持久性单元
我已经设置了多个持久性单元的 guice,但我遇到的问题是我更喜欢有一个默认值,而不是必须显式声明一个或另一个。当我想要“另一个”时,我会明确要求它。当我想要默认的时,我会想做同样的事情,就好像我只有一个 PU。
我尝试仅在 PrivateModule 中安装 JpaPersistModule,但这并没有改变任何东西。如果我绑定到“默认”注释并尝试在没有“annotatedWith”分类器的情况下重新绑定,我会收到重新绑定错误。
这可能吗?我相信使用 CDI 中的等价物,我可以注入注入点来查看它并当场做出决定。我还没有在 guice 中找到等价物,但一定有。
就代码而言,这就是我所拥有的(但不想要):
相反,我想要这个: