sql增加字段默认为0_OUP2.0:mysql乐观锁不生效

    oup2.0优化中,对乐观锁进行了重点关注,在优化中,发现乐观锁注解存在,但在部分功能中没有生效。

28358395b3db3d61143f63c872cc0434.png

    ps:数据库设计是门艺术,体验实践,结合设计思想。一份好的存储设计,支持横向、垂直双向扩展,兼顾业务、技术升级,同时支持不同类型存储的交叉夸张。

4773c0c45f120af58212c37368462d19.png定位4773c0c45f120af58212c37368462d19.png

    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方法错误。

9c7533a929ac251417625b55e9023ddd.png

c1ec6d80988f43ee220c63ea21edd5cd.png

4773c0c45f120af58212c37368462d19.png解决4773c0c45f120af58212c37368462d19.png

   调整为updateIgnoreNull后,再次测试,乐观锁生效,该操作的前提是,数据库对象需要先查询后操作,若实现前端展示,需要传递到前端,在请求内包含。

    ps:观fastmybatis源码底层,代码不多,设计思路也比较清晰,但解决问题的方式比较好,大大降低了编码量,并结合底层,保留了其原始扩展能力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值