概念:从这一点设置的时间点开始(时间点a)到这个事务结束的过程中,其他事务所提交的数据,该事务将看不见!(查询中不会出现别人在时间点a之后提交的数据)
 
应用场合:
如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持SQL执行期间的读一致性; 
如果你一次执行多条查询语句,例如统计查询,报表查询,在这种场景下,多条查询SQL必须保证整体的读一致性,否则,在前条SQL查询之后,后条SQL查询之前,数据被其他用户改变,则该次整体的统计查询将会出现读数据不一致的状态,此时,应该启用事务支持。
【注意是一次执行多次查询来统计某些信息,这时为了保证数据整体的一致性,要用只读事务】
 
怎样设置:
对于只读查询,可以指定事务类型为readonly,即只读事务。
由于只读事务不存在数据的修改,因此数据库将会为只读事务提供一些优化手段,例如Oracle对于只读事务,不启动回滚段,不记录回滚log。
(1)在JDBC中,指定只读事务的办法为: connection.setReadOnly(true);
(2)在hibernate中,指定只读事务的办法为: session.setFlushMode(FlushMode.NEVER); 
此时,Hibernate也会为只读事务提供Session方面的一些优化手段
(3)在spring的Hibernate封装中,指定只读事务的办法为: bean配置文件中,prop属性增加“readOnly”
或者用注解方式@Transactional(readOnly=true)
【 if the transaction is marked as read-only, Spring will set the Hibernate Session’s flush mode to FLUSH_NEVER, 
and will set the JDBC transaction to read-only】也就是说在Spring中设置只读事务是利用上面两种方式
 
在将事务设置成只读后,相当于将数据库设置成只读数据库,此时若要进行写的操作,会出现错误

@Transactional(readOnly = true)相关推荐

  1. 带你理解 只读事务(@Transactional(readOnly = true)

    概念:从这一点设置的时间点开始(时间点a)到这个事务结束的过程中,其他事务所提交的数据,该事务将看不见!(查询中不会出现别人在时间点a之后提交的数据) 应用场合: 如果你一次执行单条查询语句,则没有必 ...

  2. spring 事务管理之只读事务@Transactional(readOnly = true)

    我们可以使用 @Transactional(readOnly = true) 来设置只读事务 在将事务设置成只读后,当前只读事务就不能进行写的操作,否则报错.如下 Cause: java.sql.SQ ...

  3. 关于只读事务:@Transactional(readOnly = true)

    一:只读事务是否做无用功?文章链接:只读事务是否只做无用功 @Transactional(ReadOnly=true) mysql支持只读事务的. 只读事务内,不能增加.修改.删除内容,否则报Cann ...

  4. spring事务@Transactional(readOnly = true)及隔离级别实验

    先写结论: 第一:@Transactional(readOnly = true) 1.那么方法里面,必须是读的操作,当有写的操作的时候会报错提示. 2.读到的数据,从进入方法开始,以后即使其他客户端修 ...

  5. 说说@Transactional(readOnly = true),和mysql事务隔离级别;

    1.首先说说注解@Transactional(readOnly = true) (1)这里使用readOnly=true后,直观会给我们的体现就是,在该事务中,我们只能做查询,不能做更改等操作,否则报 ...

  6. SpringMVC当中的 @Transactional(readOnly = true) 的作用

    2019独角兽企业重金招聘Python工程师标准>>> readOnly=true表明所注解的方法或类只是读取数据. readOnly=false表明所注解的方法或类是增加,删除,修 ...

  7. read-only=true

    如果你一次执行单条查询语句,则没有必要启用事务支持,数据库默认支持SQL执行期间的读一致性: 如果你一次执行多条查询语句,例如统计查询,报表查询,在这种场景下,多条查询SQL必须保证整体的读一致性, ...

  8. 关于@Transactional(readOnly = false)注解,数据新增修改Connection is read-only

    关于@Transactional(readOnly = false)注解,数据新增修改Connection is read-only 有时你新增或修改会报Connection is read-only ...

  9. Connection is read-only @Transactional(readOnly = false)不管用

    今天改代码遇到一个问题,项目是老项目,这个功能又是新加上的.上一个人写业务直接在控制层写的.但是现在到我接手,刚好最近客户在用出现了问题.修改数据的时候数据乱了.以前这个功能是没有事务的,我一看就觉得 ...

最新文章

  1. OC学习笔记之Foundation框架NSNumber、NSValue和NSDate(转)
  2. python连接oracle
  3. redis的操作 json对象实例
  4. Ceph BlueStore 和双写问题
  5. 排序算法之——冒泡排序优化
  6. Ubuntu下apache2启动、停止、重启、配置
  7. 我很想走到一个森林里旅游
  8. 开源、高质量QR码多语言生成库
  9. java用循环图形显示_请问如何在使用循环绘制图形时使每个图形的显示之间有一定的延迟时间?...
  10. jest单元测试-基础
  11. ubuntu12.04 安装 coreseek 4.1beta (转)
  12. DeepFake技术--辅助工具
  13. Java实现PC端支付宝网页支付
  14. BZOJ2794: [Poi2012]Cloakroom【偏序+背包】
  15. ubuntu16.04 安装 NVIDIA 显卡驱动 +cuda9.0+cudnn +tensorflow AND问题若干
  16. Capstone CS5210|CS5210 HDMI to VGA转换器
  17. Pytorch —— nn.Module类(nn.sequential)
  18. 高手常用的自我介绍套路
  19. matlab 控制命令,[转载]Matlab绘图基本控制命令
  20. 零中频接收机频率转换图_射频通信系统的接收机三大结构

热门文章

  1. 外语配音软件“布谷鸟配音“和ffmepg转换软件的使用以及SYD_Calculator提取文件到C语言
  2. jaeger php,Jaeger 客户端库
  3. CSS 制作烟雾效果文字
  4. Git进行pull时,出现please enter the commit message for your changes...
  5. 三年级计算机秒打汉字教案,武汉社版三年级全册信息技术 18.汉字输入我能行 教案...
  6. 中国空气能热水器市场品牌竞争格局与投资价值分析报告2022版
  7. AVKiller病毒的清除
  8. 气动元件-单双作用气缸及电磁阀
  9. 天鹅是白天的月亮(转)
  10. 一键抠图是怎么做到的?