spring @Transactional配置说明
来源:互联网 发布:单片机最小系统 原理图 编辑:程序博客网 时间:2024/04/29 14:17
转载在自百度空间,连接
事务注解说明
@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)//设置数据库隔离级别
- spring @Transactional配置说明
- spring @Transactional相关说明
- @Transactional spring 配置事务
- Spring中Transactional配置
- Spring中Transactional配置
- Spring中Transactional配置
- Spring中的@Transactional配置
- Spring中 Transactional配置
- Spring中Transactional配置
- Spring中的@Transactional配置
- Spring中的@Transactional配置
- @Transactional spring 配置事务 注意事项
- spring @Transactional 配置事务 注意事项
- @Transactional spring 配置事务 注意事项
- @Transactional spring 配置事务 注意事项
- @Transactional spring 配置事务 注意事项
- @Transactional spring 配置事务 注意事项
- Spring @Transactional 配置无效 注意事项
- 从周雷斗法说起
- 查看基于Android 系统单个进程内存、CPU使用情况的几种方法
- Codeforces Round #127 (Div. 2)
- 黑马程序员-java学习日志2
- GNU make 指南
- spring @Transactional配置说明
- 三星uboot1.1.6源码分析——start.s(7)--C语言部分(1)
- 继承System.Web.UI.Page的页面基类
- Android系统权限配置
- 类型转换器
- Fedora 17 安装 ACE6.1
- Link State Routing
- 解决VS2008 开发过程中,生成速度慢的问题
- 关于对MYSQL存储过程传递参数是纯数字还是字符串的判断