hibernate+spring 注解 对事务的一些信息 (还没有整理)
事务注解说明
@Transactional 类事务说明机制
@Transactional(noRollbackFor=RuntimeException.class) 方法事务说明
@TRacsactional(RollbackFor=Exception.class)
@Tracsactional(readOnly=true);
@Tracsactional(timeout=100)
@Tracsactional(isolation)数据库的隔离级别
{
Read Uncommited:读取未提交的数据(会出现脏读 不可重复读 幻读)
Read Cimmited:读已提交的数据(会出现不可重复读和幻读)
Repeatable Read:可重复读(会出现幻读)
Serializable:串行化
}
information
{
脏读:一个事物读取到另外一个事物未提交的更新的数据
不可重复读:在同一个事物中,多次读取同一个数据返回结果有所不同 就是后续的读取可以读到另外一个事物的已经提交的更新数据
可重复读:在同一个事物多次读取数据时 能够保证所读取数据一样 也就是后读取的不能读到另外一个事物已经提交的数据
幻读:一个事物读取到另外一个事物已经提交的更新的数据
}
针对查询方法
@Transactional(propagation=Propagation.NOT_SUPPORTED)针对某个方法不开启事务
@Transactional(propagation=Propagation.REQUIRED)默认的事务支持
Propagation.REQUIRED
Propagation.NOT_SUPPOKTED
Propagation.REQUIRESNEW
propagation.MANDATORY
Propagation.SUPPOKTS
Propagation.Never
Propagation.NESTED
XML配置事物
注解配置事物例子
public class Bean1{
@Transaction(propagation=Propagation.Required)
public void update(){
executeUpdate(SQL);
}
}
public class Bean2{
@Transaction(propagation=Propagation.Required)
public void update(){
executeUpdate(SQL);
}
}
public class TransactionExample {
@Transaction(propagation=Propagation.Required)
public void payment(){
daoBean1.update();
daoBean2.update();
}
}
//事务传播属性
@Transactional(propagation=Propagation.REQUIRED) //如果有事务,那么加入事
务,没有的话新建一个(不写的情况下)
@Transactional(propagation=Propagation.NOT_SUPPORTED) //容器不为这个方法
开启事务
@Transactional(propagation=Propagation.REQUIRES_NEW) //不管是否存在事务,
都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
@Transactional(propagation=Propagation.MANDATORY) //必须在一个已有的事务中
执行,否则抛出异常
@Transactional(propagation=Propagation.NEVER) //必须在一个没有的事务中执
行,否则抛出异常(与Propagation.MANDATORY相反)
@Transactional(propagation=Propagation.SUPPORTS) //如果其他bean调用这个方
法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.
/*public void methodName(){
update();//本类的修改方法 1
otherBean.update();//调用其他类的修改方法
update();//本类的修改方法 2
}
other失败了不会影响 本类的修改提交成功
本类update的失败,other也失败
*/
@Transactional(propagation=Propagation.NESTED)
@Transactional (propagation =
Propagation.REQUIRED,readOnly=true) //readOnly=true只读,不能更新,删除
@Transactional (propagation = Propagation.REQUIRED,timeout=30)//设置超时时间
@Transactional (propagation =
Propagation.REQUIRED,isolation=Isolation.DEFAULT)//设置数据库隔离级别
转载于:https://www.cnblogs.com/marcus/archive/2009/09/26/1574612.html
hibernate+spring 注解 对事务的一些信息 (还没有整理)相关推荐
- spring 注解方式 事务管理
使用步骤: 步骤一.在spring配置文件中引入<tx:>命名空间 <beans xmlns="http://www.springframework.org/schema/ ...
- spring注解@transactional事务传播
文章目录 事务传播 传播类型 REQUIRED SUPPORTS MANDATORY REQUIRES_NEW NOT_SUPPORTED NEVER NESTED 事务传播 在spring中使用事务 ...
- 一行代码引发的思考 之 @Tranactional(Spring注解式事务)
一.假设一个一个业务场景 SSM框架,MySQL数据库InnoDB存储引擎 某个业务需要将student表中student_id = 3 的 type 修改成 1,条件是这个学生所在班级的其它学生的t ...
- Spring Boot 中使用 @Transactional 注解配置事务管理
From: https://blog.csdn.net/nextyu/article/details/78669997 事务管理是应用系统开发中必不可少的一部分.Spring 为事务管理提供了丰富的功 ...
- Spring 注解方式实现 事务管理
2019独角兽企业重金招聘Python工程师标准>>> 使用步骤: 步骤一.在spring配置文件中引入<tx:>命名空间 <beans xmlns="h ...
- Spring4.x()-Spring的Jdbc事务-注解
Spring的Jdbc事务-注解 一.拷贝必要的jar包到工程的lib目录 二.创建spring的配置文件并导入约束 <?xml version="1.0" encoding ...
- hibernate mysql 注解_【译】Spring 4 + Hibernate 4 + Mysql + Maven集成例子(注解 + XML)
前言 本文将基于注解配置, 集成Spring 4和Hibernate 4,开发一个增删改查应用,涉及以下内容: 创建Hibernate实体 保存数据到mysql数据库中 在事务transaction内 ...
- spring注解驱动开发-7 Spring声明式事务
Spring 声明式事务 前言 @EnableTransactionManagement AutoProxyRegistrar InfrastructureAdvisorAutoProxyCreato ...
- java 异步调用 事务_深入理解Spring注解@Async解决异步调用问题
序言:Spring中@Async 根据Spring的文档说明,默认采用的是单线程的模式的.所以在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的. 那么当多个任务的执行势必会相互影响. ...
最新文章
- AI技术在安防市场上的应用主要还存有几个挑战
- iPhone应用程序图标 - 精确半径?
- 前端科普系列(2):Node.js 换个角度看世界,
- python中sorted_Python中sorted()方法的用法
- java时间错误_更改操作系统时间时睡眠()中的Java错误:任何解决方法?
- Linux stmac网卡代码分析 -- open
- 再见了,余!额!宝!!!
- linux上用selenium登录新浪微博,获取用户关注的用户id
- Hadoop 1.x和Hadoop 2.x,Hadoop 1.x局限性和Hadoop 2.x YARN优点之间的区别
- 开课吧之Java常见面试题之RandomAccess接口
- matlab之svd、svds函数
- Base32编码转换
- linux查看pci设备枚举,Linux 枚举PCI设备
- prettier工具格式化
- word 如何删除边框黑线
- 资讯汇总230207
- GD32F130之GPIO
- JAVA微信商城 有后台
- Java编程基础二:java基本语法
- Linux Debian: 命令行连接 wifi 配置,解决在DELL戴尔和Thinkpad联想上Wicd找不到无线网问题 (用 ifup 或 nmcli )