当前位置: 首页 > 面试题库 >

使用Hibernate和Guice管理JavaSE中的事务

苏坚成
2023-03-14
问题内容

我正在编写一个使用GWT,Hibernate和Google
Guice(带有GIN)的相当简单的应用程序。我想做的是使用外部管理器(例如@Transactional在Spring中使用)来管理事务
,而不是使用EntityManager#getTransaction。我尝试使用@Transactional,但似乎不适用于我。

我已经使用注入了EntityManager Providers,如下所示:

/* import stuff */

public class DbProvider implements Provider<EntityManager> {

    public EntityManager get() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("persdb");
        return emf.createEntityManager();
    }

}

手动管理事务时,它似乎可以正常工作。我希望自动管理事务,也希望使用DBUnit进行自动化测试。

有人知道如何解决吗?


问题答案:

@Transactional在吉斯工作需要三件事情:

  • 您需要guice-persist.jar在类路径中
  • @Transactional调用方法的对象必须由Guice创建
  • 方法一定不能 private


 类似资料:
  • 在db会话监视器中,当这种情况发生时,我得到了一个不活动的事务。 我得到的错误如下: 问题是交易和连接应该自动打开和关闭...我希望并发修改失败的事务得到回滚...但似乎他们变得不活跃了。

  • 我们使用JPA(Hibernate4)和Spring4管理JTA事务。由于应用程序的某些部分也使用JDBC来访问数据库,因此我们需要确保JDBC和JPA加入同一个事务,以查看提交之前另一个事务发生了什么变化。 您可以在GitHub https://GitHub.com/abenneke/sandbox/tree/master/spring-hibernate4-transaction上找到这些问题

  • 问题内容: 您好我已经面对一堵墙,而我试图使用Spring 3.x和hibernate4.做交易管理 我搜索在互联网上,但有办法在hibernate3要做到这一点,没有那么多的hibernate4. I”我很困惑,我不确定此设置是否有效。 我正在使用的东西… Spring 3.x Hibernate 4 我已经阅读了这些 http://static.springsource.org/spring/

  • 我需要执行父任务,父任务可能有子任务,也可能没有子任务。每个父任务和子任务都应该在线程中运行。如果父任务或子任务执行中出现错误,则必须回滚父任务和子任务的事务。我正在使用hibernate4。

  • 问题内容: 我刚刚开始使用spring和hibernate进行项目。我的DAO图层类扩展了HibernateDaoSupport。我们没有使用注释。之前,我们使用了struts,因此我们使用了Session类提供的getTransaction,commit,rollback ..方法。我的要求非常简单,对于所有DAO类,如果有异常,则回滚,否则提交。请提出介绍spring交易管理的最简单方法。 问

  • 在我们的SpringBoot项目(使用SpringMVC、SpringData等)中,我们使用HibernateEnvers来审核数据库记录。有几件事我不确定。 1-性能-线程: 假设我有一个被审计的个人实体。当我在相关表中插入/更新新的个人记录时,这会如何影响我的应用程序的性能?客户端是否必须等待所有envers审核完成?Envers会在一个单独的线程中处理这个问题吗?一旦插入成功,那么客户就可