Spring中配置事务属性

本文介绍了Spring中如何配置事务属性,包括隔离级别如READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ和SERIALIZABLE,以及默认的DEFAULT值。此外,还提到了超时设置timeout和只读事务的配置,该属性对于只读操作可以优化性能。最后,讨论了事务的传播属性,用于解决事务嵌套和多个服务间的事务控制问题。
摘要由CSDN通过智能技术生成

Spring中配置事务属性

通常采用简单的注解配置属性:
@Transactional(属性名称=属性值)

  • Isolation 指定事务的隔离级别@Transactional(isolation = Isolation.DEFAULT)

    • 读已提交 READ_COMMITTED
    • 读未提交 READ_UNCOMMITTED
    • 可重复读 REPEATABLE_READ
    • 串行化 SERIALIZABLE
    • 默认值 DEFAULT: (MySQL: 可重复读、Oracle: 读已提交)
  • timeout 设置单位为秒的超时。 默认值是 -1 表示使用数据库的设置。

  • readOnly 设置是否是只读事务(常用,用来标识是否是只读操作)。@Transactional(readOnly = false)

    • 当你能确保整个事务过程中只对数据库执行Select操作的时候,如果将此属性设置为true,则会自动进行优化,提高性能。
  • Propagation 事务的传播属性(特有的精细化的控制),解决的是事务嵌套的问题,例如:service依赖其他多个service进行数据操作,并且需要保证各个service执行中的事务控制@Transactional(propagation = Propagation.SUPPORTS)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值