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

使用Spring自动进行Hibernate事务管理?

莫誉
2023-03-14
问题内容

Spring框架在多大程度上适用于事务处理?我读过《 Spring In
Action》一书中的建议,并提供了一些示例,这些示例创建了不用担心会话和事务管理的DAO方法,只需通过以XML设置会话工厂和事务模板,然后将它们连接到DAO中即可。另一方面,SpringSource.org的文档建议需要大量的XML和/或注释才能实现此目的。

真相是什么,我按照以下方式获取代码的最简单方法是什么?

get session from sessionfactory
open transaction
preform database actions
commit transaction with error handling

并使其

preform database actions

减少我在所有方法中拥有的样板交易代码的数量?


问题答案:

Spring提供了至少3种事务划分方法:

1)通过TransactionTemplate或PlatformTransactionManager进行程序化处理-点亮配置,但具有侵入性

2)通过XML进行声明-详细的XML,但非侵入性

3)通过注释进行声明-轻于XML,无创

您选择哪一个取决于最适合您的需求,Spring不会为您做出选择。从您的问题看来,注解方法就是您所追求的。

我建议阅读Spring参考手册中的注释驱动的事务处理部分。简洁明了。

我总是先查阅ref文档,如果文档中未包含该书,则只会查阅一本书。



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

  • 上下文2。XML 这会导致将抽象类的transactionManager属性设置为服务器启动期间创建的最后一个注释事务方面bean'org.springframework.transaction.interceptor.TransactionAspectSupport。 因此,如果实例化的最后一个bean是dataSource1,则在dataSource1上创建事务,否则在DataSource2上

  • 我发现实际上是Spring,我能够设置一些工作。现在,我想使用Hibernate/JPA将导入的数据保存到数据库中,但我总是出现这样的错误: 我明白问题出在交易上。以下是和的spring java配置: 这是导致异常的代码: 有什么解决这个问题的想法吗? [编辑]我也放入了作业定义和步骤定义。我所有的Spring配置都是用Java编写的。 任何人都可以给出更多的见解,如何在spring Batch

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

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

  • 在我的应用程序中,我配置了XML启动bean: 我还配置了事务管理: 并且具有自动连线的: 因此,它失败与异常: 我做错了什么?