Spring的事务和Hibernate的事务有什么区别
来源:互联网 发布:网络推广专员岗位要求 编辑:程序博客网 时间:2024/04/29 10:06
Question:
想了解一下Spring的事务和Hibernate的事务有什么区别?Hibernate的crud都用到了Transaction,在方法开始时,打开事务,然后结束时提交事务,当Hb与Sp协作时,对于一个运行在服务层且在spring事务中的方法A,调用了运行在Dao层的方法B和C,B,C的操作是通过hb实现的,我就是想不通如下两点:
1 A方法调用B后,Hb事务不是提交了吗,也就是事务上下文在这里就中断了,如果再调用C,怎么能保证b和c在一个事务环境中呢?2 我知道hb的事务控制是通过jdbc的,不是sp的是不是,如果也是,那么,对于每一个hb的存取操作,jdbc事务都应被提交,怎么可能让两个hb存取方法运行在一个事务中呢?
Answer
个人认为这就是SPRING框架做得比较精彩的部分拉!事务的传播&&AOP思想!
用框架管理事务就可以控制在每一个面上!你可以把事务控制在BO业务逻辑层,也可以控制在Dao层!
事务传播行为类型
PROPAGATION_REQUIRED
如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。
PROPAGATION_SUPPORTS
支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY
使用当前的事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW
新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED
以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER
以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED
如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。
正如你上面所讲的:A中调用了B,C两个方法,每个方法都是有自己的事务,如果你用SPRING管理,
spring就可以帮你做事务的传播!当然EJB也可以!
假如你是使用第一种类型:B中已经存在事务,C中又有一个新事务,spring就可以把C事务加到B中去!只有这两个方法执行成功,事务才会提交!
个人认为:用SPRING管理事务,HIBERNATE就可以不会事务处理拉!具体实现也比较简单!
就是用SPRING声明式事务管理,AOP思想!在SPRING的配置文件中配置一下就可以!
HibernateUtil 类是用两个ThreadLocal类型的属性以保持在一次请求中共享单一的session和transaction实例
Hibernate的事务是对底层数据库的JDBC/JTA等的封装 Spring则是对Hibernate等事务的封装
- Spring的事务和Hibernate的事务有什么区别
- hibernate的事务和spring事务的区别
- Spring与Hibernate集成:编程式事务和声明式事务的区别
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。
- 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。
- spring的读写事务和只读事务的区别
- spring事务和数据库数据库事务的区别
- spring事务隔离级别和数据库的隔离级别有什么不同
- spring hibernate事务的流程
- SPRING事务的属性有哪些?其中,事务隔离级别有哪几种?什么情况需要使用这几种事务隔离级别?
- 【spring 6】Spring和Hibernate的整合:编程式事务
- lightoj1220Mysterious Bacteria
- 并查集
- java中使用递归
- mongodb高级操作(1)-update
- JSP文件引用其他文件
- Spring的事务和Hibernate的事务有什么区别
- 黑客常用命令大全
- tomat优化
- stm8 在IAR 下烧写出现The Flash Memory Read-out protection 的解决方法
- 前端案例--简易弹幕效果
- C++中的内联函数inline总结
- RecyclerView绘制原理探究
- URAL 1990 Podracing(尺取法)
- 在jdk 1.6版本中,switch的参数无法使用String类型