`

Spring的七种事务传播途径和隔离级别

阅读更多

PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--该方法只能在一个已经存在的事务中执行,业务方法不能发起自己的事务。如果在没有事务的环境下被调用,容器抛出例外。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。
PROPAGATION_NESTED--如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

 

同时也可以配置事务的隔离级别:

<property name="transactionAttributes">
                <props>
                    <prop key="insert*">
                        PROPAGATION_REQUIRED, ISOLATION_READ_COMMITTED</prop>
                    <prop key="tran*">
                        PROPAGATION_REQUIRED, ISOLATION_SERIALIZABLE</prop>
                    <prop key="deposit*">
                        PROPAGATION_REQUIRED, ISOLATION_READ_COMMITTED</prop>
                </props>
  </property>

 

 

ReadOnly
事务属性中的readOnly标志表示对应的事务应该被最优化为只读事务。

这是一个最优化提示。在一些情况下,一些事务策略能够起到显著的最优化效果,例如在使用Object/Relational映射工具(如:Hibernate或TopLink)时避免dirty checking(试图“刷新”)。

 

也可以把事务设置成只读事务,达到最大的事务优化:

   <prop key="get*">
                        PROPAGATION_SUPPORT, readOnly</prop>

Timeout

在事务属性中还有定义“timeout”值的选项,指定事务超时为几秒。在JTA中,这将被简单地传递到J2EE服务器的事务协调程序,并据此得到相应的解释。

分享到:
评论

相关推荐

    官方原版源码spring-framework-5.1.2.RELEASE.zip

    4. **Transaction Management**:分析Spring的事务管理机制,包括编程式和声明式事务,理解事务的传播行为和隔离级别。 5. **Spring的事件驱动模型**:了解Spring如何通过ApplicationEvent和ApplicationListener...

    java-temple:权限管理java版本

    web端可能有多个,放到service中可以共用properties 是写在哪里的 src main的resource里面如何配置 开发模式和发布模式的 maven配置mybatis的事务是如何配置的事务的传播途径 7中 和事务的隔离级别2018-6-12研究日志...

    深圳技术搜集(1).docx

    14. Spring的事务管理:包括编程式事务管理和声明式事务管理,涉及事务的隔离级别、传播行为等。 15. Hibernate的延迟加载:只有在需要时才会加载关联的对象,以提高性能。 16. AOP(面向切面编程):Spring中的...

    深入浅出MyBatis技术原理与实战 源代码

    理解如何正确设置事务的隔离级别、回滚规则和传播行为对于确保数据一致性至关重要。 最后,日志和异常处理也是MyBatis使用过程中不可忽视的部分。MyBatis集成了多种日志框架,如Log4j、Logback等,帮助开发者调试和...

    传染病防控宣传微信小程序系统的设计与实现+springboot后端源码案例设计.zip

    在数据管理方面,系统需具备病种数据库,存储各类传染病的相关信息,包括病症描述、预防措施、传播途径等。同时,用户互动功能如问答、评论、分享也是必不可少的,以促进公众参与和信息交流。此外,结合微信API,...

Global site tag (gtag.js) - Google Analytics