sql增加字段默认为0_OUP2.0:mysql乐观锁不生效
oup2.0优化中,对乐观锁进行了重点关注,在优化中,发现乐观锁注解存在,但在部分功能中没有生效。
ps:数据库设计是门艺术,体验实践,结合设计思想。一份好的存储设计,支持横向、垂直双向扩展,兼顾业务、技术升级,同时支持不同类型存储的交叉夸张。
定位
oup中实现了前端模块化,通过java编码+前端模板+js互动,降低后端编码人员的前端编码能力,同时模板化的设计,提高了模板的高复用和标准化,js分离操作,实现逻辑和样式的分离,有点走偏。由于update操作从oup-console到oup-service穿透较多,故从前端输入、数据库sql二端入手,进行定位:
1、通过sql判断,确认update操作时,无@Version字段引入。
2、前端输入判断,确认无@Version字段输入。
基于第1点,再次深化到组件fastmybatis的核心源代码。确认在BaseServicempl.java中使用的updateByQuery的sql模板中,没有乐观锁的条件组装,故判断该方法不支持乐观锁。(回顾以往乐观锁定义:在全对象更新时,版本字段自动增加,乐观锁默认生效。对于指定sql由于版本字段无无法实现自动追加,需要手工拼装sql条件。)确认调用的updateByQuery方法错误。
解决
调整为updateIgnoreNull后,再次测试,乐观锁生效,该操作的前提是,数据库对象需要先查询后操作,若实现前端展示,需要传递到前端,在请求内包含。
ps:观fastmybatis源码底层,代码不多,设计思路也比较清晰,但解决问题的方式比较好,大大降低了编码量,并结合底层,保留了其原始扩展能力。
sql增加字段默认为0_OUP2.0:mysql乐观锁不生效相关推荐
- MySQL 乐观锁与悲观锁
悲观锁 悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁. 悲观锁: ...
- mysql 乐观锁_使用Mysql乐观锁解决并发问题
使用mysql乐观锁解决并发问题 案例说明 银行两操作员同时操作同一账户.比如A.B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户扣除50元,A先提交,B后 ...
- mysql使用条件限制乐观锁_使用Mysql乐观锁解决并发问题
使用mysql乐观锁解决并发问题 案例说明 银行两操作员同时操作同一账户.比如A.B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户扣除50元,A先提交,B后 ...
- mysql乐观锁总结和实践
2019独角兽企业重金招聘Python工程师标准>>> 上一篇文章<MySQL悲观锁总结和实践>谈到了MySQL悲观锁,但是悲观锁并不是适用于任何场景,它也有它存在的一些 ...
- mysql乐观锁总结和实践--转
原文地址:http://chenzhou123520.iteye.com/blog/1863407 上一篇文章<MySQL悲观锁总结和实践>谈到了MySQL悲观锁,但是悲观锁并不是适用于任 ...
- Mysql乐观锁实战
文章首先介绍乐观锁的概念,然后介绍乐观锁的实现原理,最后用一个springboot项目演示乐观锁的实现方式. 目录 什么是乐观锁 乐观锁实现原理 实战 什么是乐观锁 在进行数据库操作的时候,乐观锁总是 ...
- mysql乐观锁重试_乐观锁失败重试
1.乐观锁失败后会报:ObjectOptimisticLockFailureException 2.处理方案:捕获到对应乐观锁失败异常后进行重试,代码参考如下 在写入数据库的时候需要有锁,比如同时写入 ...
- mysql乐观锁处理超卖_通过乐观锁解决库存超卖的问题
前言 在通过多线程来解决高并发的问题上,线程安全往往是最先需要考虑的问题,其次才是性能.库存超卖问题是有很多种技术解决方案的,比如悲观锁,分布式锁,乐观锁,队列串行化,Redis原子操作等.本篇通过M ...
- jpa mysql乐观锁_JPA @Lock(value = LockModeType.PESSIMISTIC_WRITE) 悲观锁防坑
前提: 由于业务需要在entity Product已经实现了@version的乐观锁的基础上再加上了悲观锁的控制 @Lock(value = LockModeType.PESSIMISTIC_WRIT ...
最新文章
- 【怎样写代码】参数化类型 -- 泛型(三):泛型之类型参数
- 解读网络“攻城狮”的发展---老赵带你铺一段路
- 关于MySQL事务和存储引擎10个FAQ(Frequently asked questions
- linux 进程地址空间的一步步探究
- 5918. 统计字符串中的元音子字符串
- 【hue】 Access denied to hive-未解决
- 在互联网寒冬季节,他竟然是这样进了百度!值得学习 -- 来自最前沿的实战经验!...
- python获取程序运行路径
- 玻纤效应差分信号影响及处理方法,使用sigrity建模玻纤效应仿真
- 商品进销差价_新准则下商品进销差价实务处理
- cpp调用c头文件引用方法
- C/C++快速读写磁盘数据的方法
- 【深度学习】目标检测综述
- Android studio显示百度地图及闪退问题的解决
- java怎么捕捉游戏窗口_捕捉桌面上的窗口信息
- Dev-C++下面的编译状态栏信息不显示
- 【PMAC】Chapter3:COM类工厂中CLSD为{XXX}的组件失败
- 管理口安装服务器操作系统,管理口安装服务器操作系统
- nginx重启 平滑重启
- 百慕大群岛失踪者再现之谜
热门文章
- oracle数据库备份和还原
- 程序员,你的粮草何在?
- 利用Ninject实现依赖注入
- C# 词典数据结构设计【附demo】
- 初学者python笔记(字符串用法解析)
- c语言用switch字母判断星期几,c语言程序,输入年月日,判断这一天是这一年的第几天,同时判断这一天是星期几。(用switch语句)...
- springboot 优雅停机_Spring boot 2.3优雅下线,距离生产还有多远?
- 微课|中学生可以这样学Python(2.2.2节+2.2.5节):关系运算符和集合运算符
- 约瑟夫环问题(链表 + 公式)
- java post 403_求助啊。。。。。。给服务器POST JSON报403