2 hjh zljs hjh_zljs 于 2014.03.17 22:15 提问

spring管理hibernate,请问如何保证所有操作是一个事务内完成的?具体如下:

transactionTemplate.execute(new TransactionCallbackWithoutResult(){
protected void doInTransactionWithoutResult(TransactionStatus transactionStatus){
Session session = null;
Transaction tx = null;
try{
session = getSessionFactory().openSession();
tx = session.beginTransaction();
方法1();
方法2();

方法3();

update(object);
tx.commit();
}catch(Exception e){
e.printStackTrace();
if(tx != null){
tx.rollback();
}
}finally{
if(session != null){
if(session.isOpen()){
session.close();
}
}
}
}
spring管理hibernate的,请问为什么方法2或方法3出错了,方法1或(方法1+方法2)的操作怎么才不会提交到数据库(即方法1、2、3全部没报错才一次性提交所有操作)?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Spring和Hibernate 下如何保持事务的一致性和并发控制。
声明:小弟也是一个新手,如果有表述不清楚或者不正确的地方请多指正。 方法1:这个是Hibernate的一个乐观锁的实现。是从数据库角度保证数据库的一致性的。 原理是:在数据库中创建一个字段,为version,类型为int,并置默认值为0. hibernate从数据库中找出该条记录的时候,会保存该条记录version。 在操作完该条记录后,往数据库中更新该条记录的时候,会再从数据库中查找
spring是如何控制事务的?
Spring 的事务,可以说是 Spring AOP 的一种实现。AOP面向切面编程,即在不修改源代码的情况下,对原有功能进行扩展,通过代理类来对具体类进行操作。 spring是一个容器,通过spring这个容器来对对象进行管理,根据配置文件来实现spring对对象的管理。spring的事务声明有两种方式,编程式和声明式。spring主要是通过“声明式事务”的方式对事务进行管理,即在配置文件中进行声
Spring事务之如何保证同一个Connection对象
Spring容器的事务机制的实质是对传统JDBC的封装,也即是Spring事务管理无论是对单数据库实例还是分布式数据库实例,要实现事务管理,那么必须保证在一个事务过程获得Connetion对象是同一个,那么即使在同一个函数中调用其他多个的函数,通过Spring框架的AOP动态代理机制,使得Spring容器底层能够按传统JDBC的方式进行事务处理,从而保证对这个函数做事务控制。
spring、hibernate事务管理的区别及整合方式
原文地址:点击打开链接 在谈Spring事务管理之前我们想一下在我们不用Spring的时候,在Hibernate中我们是怎么进行数据操作的。在Hibernate中我们每次进行一个操作的的时候我们都是要先开启事务,然后进行数据操作,然后提交事务,关闭事务,我们这样做的原因是因为Hibernate默认的事务自动提交是false,他是需要我们人为的手动提交事务,假如你不想每次都手动提交事务的话,你
简单说说spring的事务机制,以及是如何管理的?
事务管理可以帮助我们保证数据的一致性,对应企业的实际应用很重要。 Spring的事务机制包括声明式事务和编程式事务。 编程式事务管理:Spring推荐使用TransactionTemplate,实际开发中使用声明式事务较多。 声明式事务管理:将我们从复杂的事务处理中解脱出来,获取连接,关闭连接、事务提交、回滚、异常处理等这些操作都不用我们处理了,Spring都会帮我们处理。 声明式事务管理
Hibernate将SessionFactory交给Spring来管理/Spring管理Hibernate事务的方式
为了保证数据的一致性,在编程的时候往往需要引入事务这个概念。事务有4个特性:原子性、一致性、隔离性、持久性。          事务的种类有两种:编程式事务和声明式事务。编程式事务就是将事务处理放在程序中,而声明式事务则是通过配置文件或者注解进行操作。          在Spring中有声明式事务的概念,通过和Hibernate类似框架的集成,可以很好的完成声明式事务。    
实现一个事务多个dao情况下,使用同一个connection,保证线程安全
import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.cfg.Configuration; public class HibernateSessionFactory { private static String CONFIG_FILE_LOCATION = "
如何使用Hibernate来管理事务
http://jinhua6839.com http://shengda2636.com http://ruyifang6043.com
使用SPRING+HIBERNATE 控制事务
使用Spring集成Hinernate按照从下向上方法建立 1.Hibernate对应的Dao层集成HibernateDaoSupport这个类,这个类是 Spring对Hibernate的集成,该类需要使用Spring向其注入sessionFactory代码如下getHibernateTemplate()注意利用回调的方法,匿名类对HibernateTemplate完成callback调用
把hibernate事务交给spring管理
一直在用spring管理hibernate的事务,但是一直没太搞清楚,今天梳理一下版本问题开始使用的spring 4.2.6.release和hibernate 5.2.5.final结果启动就报错 java.lang.NoSuchMethodError: org.hibernate.Session.getFlushMode()Lorg/hibernate/FlushMode; 有两种方案一种