关闭

关于spring事务中readonly

2497人阅读 评论(0) 收藏 举报
分类:

在学习spring事务的时候,发现设置readOnly后不启作用。

查阅资料后发现对spring事务中readOnly的定义理解有错,与oracle中的事务隔离级别read-only混淆。

oracle中的事务隔离级别定义:只读事务只能看到事务执行前就已经提交的数据,且事务中不能执行 INSERT , UPDATE ,及 DELETE 语句。

spring中readOnly的定义:This just serves as a hint for the actual transaction subsystem;it will not necessarily cause failure of write access attempts.

spring的readOnly事务是对java中jdbc的封装,java中connection.setReadOnly(boolean)的定义:Puts this connection in read-only mode as a hint to the driver to enable database optimizations.

结论:spring中readOnly的定义,并不是不能在事务中进行修改等DML操作,它只是一个“暗示”,提示数据库驱动程序和数据库系统,这个事务并不包含更改数据的操作,那么JDBC驱动程序和数据库就有可能根据这种情况对该事务进行一些特定的优化,比方说不安排相应的数据库锁,以减轻事务对数据库的压力,毕竟事务也是要消耗数据库的资源的。

参考:http://www.iteye.com/topic/319768#

2
0
查看评论

spring 中事务的Readonly的解释

“只读事务”并不是一个强制选项,它只是一个“暗示”,提示数据库驱动程序和数据库系统,这个事务并不包含更改数据的操作,那么JDBC驱动程序和数据库就有可能根据这种情况对该事务进行一些特定的优化,比方说不安排相应的数据库锁,以减轻事务对数据库的压力,毕竟事务也是要消耗数据库的资源的。 但是你非...
  • stz344184987
  • stz344184987
  • 2010-08-25 09:23
  • 13695

锁、事务、隔离级别--readonly

锁、事务、隔离级别--readonly
  • msy_xingfu1314
  • msy_xingfu1314
  • 2016-01-22 16:56
  • 958

spring 事务管理属性为只读read-only="true"是什么意思

简单理解  read-only="true"表示只能查询,不能修改,否则报错 转载处http://xueliang1yi.blog.163.com/blog/static/114557016201451102889/
  • u013125680
  • u013125680
  • 2015-01-29 11:15
  • 2321

Spring 注解@Transactional readOnly=true

引子  今天下班后,以前同事小胖问我Spring  Service类中的注解@Transactional readOnly=true的作用。做为他眼中的高人,我自然要装下A-C。居然想都没有想就说是注解事务控制,然后给他扯了一通数据库的隔离级别,什么read uncommi
  • seng3018
  • seng3018
  • 2011-08-16 09:26
  • 81806

Spring事务配置的五种方式及事务只读

详解spring 事务属性: http://www.iteye.com/topic/78674 Spring事务配置的五种方式: http://www.blogjava.net/robbie/archive/2009/04/05/264003.html   事...
  • lee4755026
  • lee4755026
  • 2012-08-18 18:42
  • 2539

spring事物配置,声明式事务管理和基于@Transactional注解的使用

事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。 spring支持编程式事务管理和声明式事务管理两种方式。 编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,sp...
  • bao19901210
  • bao19901210
  • 2014-12-04 15:17
  • 141660

只读事务和没有事务

在项目中看到@Transactional(readOnly=true)注解,了解到是只读事务,网上搜了下只读事务和没有事务的区别,整理如下: Oracle默认情况下(没有事务) 保证了SQL语句级别的读一致性,即在一条SQL语句执行期间,它只会看到执行前点的数据状态,而不会看到执行期间数据被其他SQ...
  • zone_coder
  • zone_coder
  • 2017-08-03 11:39
  • 377

Spring事务传播隔离只读回滚超时5种属性详细

本文主要讲述学习中了解的Spring事务的5种属性详情事务5种属性 1.事务传播性 propagation 2.事务隔离性 isolation 3.事务回滚属性 rollbackfor…等 4.事务只读属性 readonly && 事务超时属性 timeout用@Transa...
  • JosephLoveJesus
  • JosephLoveJesus
  • 2016-12-06 09:31
  • 945

spring事务read-only只读报错处理总结

1.事务配置 2.事务应用 3.问题:执行查询2报错read-only只读 4.分析: (1)read-only只读事务配置是为了避免多次查询结果不一致,即在进行数据库查询之前,已经查询的结果不能有变动 (2)但是以上代码显示在查询2之前,对查询1结果作了set操作,也就是对查询结果改变后再...
  • ryanemma
  • ryanemma
  • 2016-07-13 10:58
  • 1617

Spring 管理事务(传播特性、隔离级别、readonly)

一、事务传播机制(Propagation ) 1、spring使用动态代理来为某个方法自动添加事务,而代理应该给哪个方法增加事务行为,是有传播机制决定的。下面看有哪些属性:   1)REQUIRED 默认的,加入当前正要执行的事务不在另外一个事务里,那么就起一个新的事务。 ...
  • liuxiao723846
  • liuxiao723846
  • 2016-07-03 23:50
  • 3395
    个人资料
    • 访问:20839次
    • 积分:322
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    文章分类
    最新评论