ShardingSphere的坑是怎样的


ShardingSphere的坑是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。现象4.0.0-RC1版本,我设置了数据自动生成分布式主键ID,然后当我进行数据插入的时候,我发现其中一个字段value值是null的时候,这个自动生成的主键ID赋值错乱了。找问题那咋办呢?只能从他的原理以及源码入手了。设置了自动生成分布式主键,那么他是怎么操作的呢?经过一番查询和测试之后,ShardingSphere是这么做的。他拿到业务层处理的sql之后,他在这个sql上面进行了改造。举个例子,我要在user表里面插入一条数据,sql如下:然后ShardingSphere会进行处理,他会在我原有的sql上加ID,然后正常得到的sql应该是:但是事实却是这样的:怎么会这样呢?看起来感觉像是最后赋值的时候null的情况判断是有问题的,那么我们接下去继续去看源码。又是一番debug + 查找之后。。。。发现有这样一个抽象类InsertOptimizeResultUnit,其中有一个方法是getCurrentIndex,如下图:截屏的这一步操作是在做什么呢?他主要是查找value这个数组的最后一位的下标是多少,由于他每一次都对value进行了非空判断,也就是说只要有一个value值为空,那么这个下标计算出来就会少1。那么最后最后造成的结果就是明明他应该在age后面加上id,但是由于下标计算错误导致id的value值去覆盖了age的value值。解决方案首先先去github上提交了issue,地址是https://github.com/apache/incubator-shardingsphere/issues/2897先看ShardingSphere的开发者是否已经解决了这个问题,如果他们 香港云主机要在后续的版本进行解决的话,目前只有两个方案解决了:看完上述内容,你们掌握ShardingSphere的坑是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注开发云行业资讯频道,感谢各位的阅读!

相关推荐: win7电脑桌面壁纸不能更换怎么解决

这篇文章主要介绍“win7电脑桌面壁纸不能更换怎么解决”,在日常操作中,相信很多人在win7电脑桌面壁纸不能更换怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”win7电脑桌面壁纸不能更换怎么解决”的疑惑有所帮助!接下来,…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/12 17:24
下一篇 08/12 17:24

相关推荐