博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring事物
阅读量:5163 次
发布时间:2019-06-13

本文共 1559 字,大约阅读时间需要 5 分钟。

Spring事务传播属性(7种)

•  REQUIRED 业务方法需要在一个事务中运行。如果方法运行时 ,已经处在一个事务中 ,那么加入到这个事务中 ,否则自己创建一个事务。 (默认)。

•  NOT-SUPPORTED 声明方法需要事务。如果方法没有关联到一个事务 ,容器会为它开启一个事务 ,如果方法在一个事务中被调用 ,该事务将会被挂起 ,在方法调用结束后 ,原先的事务会恢复执行。

•  REQUIREDNEW 业务方法必须在自己的事务中运行。一个新的事务将被启动 ,而且如果有一个事务正在运行 ,则将这个事务挂起 ,方法运行结束后 ,新事务执行结束 ,原来的事务恢复运行。

•  MANDATORY 该方法必须运行在一个现有的事务中 ,自身不能创建事务 ,如果方法在没有事务的环境下被调用 ,则会抛出异常。

•  SUPPORTS 如果该方法在一个事务环境中运行 ,那么就在这个事务中运行 ,如果在事务范围外调用 ,那么就在一个没有事务的环境下运行。

•  NEVER 表示该方法不能在有事务的环境下运行 ,如果在有事务运行的环境下调用 ,则会抛出异常

•  NESTED 如果一个活动的事务存在, 则运行在一个嵌套的事 务中, 如果没 有活动事务, 则按照REQUIRED事务方式执行。该事务可以独立的进行提交或回滚 ,如果回滚不会对外围事务造成影响

Spring事务隔离级别

•  DEFAULT 使用数据库默认隔离级别

•  READ_UNCOMMITTED 允许读取尚未提交的数据。可能导致脏读、幻读或不可重复读。

•  READ_COMMITTED 允许从已经提交的并发事务读取。可以防止脏读 ,但依然会出现幻读和不可重复读。

•  REPEATABLE_READ 对相同字段的多次读取结果是相同的 ,除非数据被当前事务改变。可以防止脏读和不可重复读 ,但幻读依然出现。

•  SERIALIZABLE 完全符合ACID的隔离级别 ,确保不会发生脏读 ,幻读和不可重复读。

 脏读 :一个事务读取到另一个事务没有提交到的数据。

不可重复读 :在同一事务中 ,多次读取同一数据返回的结果不同。

 幻读 :一个事务读取到另一个事务已经提交的事务。

基于Annotation的事务 xml
java@Named @Transactional public class UserSerivce { @Transactional(readOnly=true) public List
findAll() { return null; }}

 

转载于:https://www.cnblogs.com/fudapeng/p/3873644.html

你可能感兴趣的文章
HDU 4960 Handling the past 2014 多校9 线段树
查看>>
时间管理-未经思考的人生不值得过
查看>>
cf 749D Leaving Auction
查看>>
[习题]验证控件(Validator)搭配 当地语系(Localization)
查看>>
XidianOJ 1213 小V的滑板鞋
查看>>
2017-2018-1 20155313 《信息安全系统设计基础》第八周课下作业2
查看>>
nginx的缓存设置提高性能
查看>>
C基础--单链表的构造
查看>>
光标定位、模糊查询
查看>>
获取Android控件ListView中被选中的某一列的值
查看>>
UVA 11374 Airport Express 机场快线 Dijistra+路径
查看>>
UIWebView 无缝切换到 WKWebView
查看>>
【python小练】0002
查看>>
【Django】不知道为什么就是想学一下 01
查看>>
C# Single Instance WinForms and Microsoft.VisualBasic.dll
查看>>
Query String模块和http小爬虫和events模块和fs模块和stream模块
查看>>
NOIP前的水题记录
查看>>
python:python之禅
查看>>
isKindOf和isMemberOf的区别
查看>>
深入浅出了解frame和bounds
查看>>