问题标签 [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.

0 投票
1 回答
737 浏览

guice - guice-persist 是否支持 @Finder 注释

Guice-persist 是基于 warp-persist 的,它有 finder 方法的概念。

http://code.google.com/p/google-guice/wiki/GuicePersist

是基于

http://code.google.com/p/warp-persist/

我可以看到在 guice-persist 中有一个 @Finder 注释,类似于 warp-persist 但没有文档。

0 投票
1 回答
5713 浏览

java - Hibernate/JPA 在启动时未针对 DB 模式进行验证

由于某种原因,hibernate 没有捕捉到诸如将实体映射到不存在的表之类的问题。我的 persistence.xml 文件看起来像这样......

0 投票
1 回答
1359 浏览

hibernate - 如何使用 Guice 将属性注入/解析到 XML 文件中以配置 persistence.xml 文件?

我正在使用 guice-persist,我想知道是否有任何可以将 Java 属性文件中的属性注入或解析器属性到 persistence.xml 文件中,就像我对 Spring 所做的那样。例如:

如果不是,我如何使用 guice-persist 库配置 EntityManager 以便从属性文件中注入此属性?

谢谢!

0 投票
1 回答
789 浏览

transactions - 如何使用 Guice 和 Jersey 在 GET 请求中配置只读事务?

我正在使用 Guice、Guice Persist、Hibernate 和 Jersey。我所有的资源方法都用@Transactional 注释,除了用@GET 注释的方法。这是配置每请求事务范围的正确方法吗?

0 投票
4 回答
2687 浏览

jpa - 如何在 Wicket 1.5 中使用 Guice Persist (Guice 3.0)?

我想了解如何在 Wicket 1.5 中使用 Guice Persist (Guice 3.0)。

我找不到任何解释如何做到这一点的“hello world”类型的例子,如果你可以链接/提供这样一个很好的例子,并且很高兴地被接受为答案。

与此同时,我将尝试自己创建一个“hello world”类型的示例,随着我的进展将代码发布在这里。帮助使我的代码正常运行也将被接受为答案。


我建立了一个简单的 wicket 项目,非常类似于 Wicket 示例中的 'hello world' guice 示例,它使用 guice 进行依赖注入。我现在想扩展这个项目以使用 JPA 和 Guice Persist,而不是“Hello World”,我想从数据库中获取用户并显示其用户名。我正在尝试使用 Guice wiki 关于Guice persist的说明来实现这一点。

更新:所以,我有点让它工作了。在WebApplication.init()我注入这样的 ServetModulegetComponentInstantiationListeners().add(new GuiceComponentInjector(this, new MyServletModule()));时,我还在 web.xml 文件的顶部添加了 GuiceFilter,在 wickets 过滤器之前。

现在,当我运行应用程序时,一切正常,但我收到了关于使用不推荐使用的方法的警告。将进一步研究这一点。

警告:您正在尝试使用已弃用的 API(特别是尝试在急切创建的单例中 @Inject ServletContext。虽然我们允许这样做是为了向后兼容,但请注意,如果您有多个注入器(使用 ServletModule ) 在同一个 JVM 中运行。有关详细信息,请参阅 http://code.google.com/p/google-guice/wiki/Servlets上的 Guice 文档。

目录树

WicketApplication.java

主页.java

主页.html

MyServletModule.java

IService.java

JpaService.java

用户.java

web.xml

持久性.xml

pom.xml

0 投票
1 回答
576 浏览

entitymanager - 使用 guice-persist 自动清除会话

我正在使用一个在 tomcat 上运行 guice-servlet 并在 guice-persist 下休眠的环境。我遇到的问题是,当我在一个请求中使用 em.getReference() 时,加载的代理对象保留在 entitymanager 缓存中,并且可能出现在我希望从数据库中完全加载对象的另一个请求中。

我曾经在 EJB3 环境中使用休眠,这是默认行为。实体管理器缓存对于每个新请求都是清除的。guice-persist 为每个请求清除会话不是更安全的行为吗?或者至少将其作为 JpaPersistModule 的设置?

hibernate SessionImpl "autoClear" 中有一个特殊的标志,它负责 EJB3 行为。当 JpaPersistModule 创建新的实体管理器时,有什么方法可以启用该标志?

0 投票
2 回答
2066 浏览

java - 如何提交当前的 guice-persist UnitOfWork?

我正在使用UnitOfWorkGuice-persist 在休眠之上的后台任务方法(由 Quartz 操作)。后台任务调用一个服务,该服务需要在其任务中间提交当前事务 - 并继续另一个事务。如何提交当前的 UnitOfWork 并创建一个新的?

该服务也由 Guice 管理,但它是一个单例,并且无法按原样访问调用UnitOfWork

理想情况下,我不想更改服务签名。一种解决方法是让调用者将两个UnitOfWork作为参数提供给foo(),但这似乎有点被黑了。

编辑:为了方便未来的读者使用,这是我对 ColinD 给出的解决方案的实现,它非常符合要求:

0 投票
2 回答
504 浏览

hibernate - JPA2 + Hibernate + Guice-persist:版本行为

我使用 Hibernate 3.6 Final、Guice-persist 和 JPA2。

太好了,我已经配置好了所有东西,并且我的 bean 有一个@Version private Long version;, 带有 getter 和 setter。

我已经用所有字段实现了equals和hashcode。

我的 dao 保存方法是:

但是,如果我这样做:

然后,如果我更改名称并再次尝试保存,我会收到“StaleObjectstateException 行已更新或删除...”...

我想知道我必须做什么才能让实体管理器在保存对象时更新版本......以及为什么坚持不这样做。

提前致谢。

0 投票
1 回答
3334 浏览

gwt - Guice-Persist:尝试在关闭的 EntityManager 上执行操作

我有一个由 maven 管理的应用程序,它有两个模块:一个用于持久性,另一个用于 webapp 本身(gwt)。

我在持久性模块中的测试就像一个魅力,但是,在 webapp 中,当我多次执行相同的方法时,我得到了一个java.lang.IllegalStateException: Attempting to execute an operation on a closed EntityManager..

我使用 guice-persist 将实体管理器注入到我的 DAO 中,并且我所有的 DAO 方法都有@Transactional注释。

在我的 webapp 中,我放了一个: public class ScuvServletModule extends ServletModule {

如果我删除PersistFilter,它会工作,但会随机抛出 Transaction Closed 异常或类似的东西。

有什么帮助吗?

0 投票
2 回答
2087 浏览

hibernate - Guice-Persist - “这个线程上的工作已经开始。看起来你已经调用了 UnitOfWork.begin() 两次,而在两者之间没有对 end() 进行平衡调用。”

我们的应用程序是一个广泛使用 Guice-Persist 和 Guice-Servlet 的 Java-GWT 应用程序。我们使用 Guice-Persist 的 session-per-HTTPRequest 功能从未遇到过问题,这与 Warp-persist 最初使用的功能相似。

根据文档,我们正在通过 PersistFilter 类过滤我们的 webapp。根据此处的 Guice 文档,我们的 persistence.xml 文件具有 transaction-type="RESOURCE_LOCAL" 。

现在由于某种奇怪的原因,我们的 PROD 环境显示错误

“这个线程上的工作已经开始。看起来你已经调用了 UnitOfWork.begin() 两次,而在两者之间没有对 end() 进行平衡调用。”

在此处输入图像描述

看起来 Guice-Persist 不支持嵌套工作单元的问题。关联

我们最近还从休眠 3.6.3.Final 迁移到了 4.1.4.Final。不确定他是否会与guice有某种不兼容...

在这一点上,我们完全不知道为什么会发生这种情况。