开发者社区> 问答> 正文

es adapter 解析sql时,两个表有相同的字段名称,更新时,会有bug

SELECT a.id AS id, a.name AS user_name, a.role_id AS role_id, b.name AS role_name FROM myuser a LEFT JOIN myrole b ON a.role_id = b.id 例如配置文件中写以上sql

然后我实际执行update role set name='newname' where role_id='1'; 会将a.name也都修改掉,原因

    if (dmlOld.containsKey(columnName) && !mapping.getSkips().contains(fieldItem.getFieldName())) {
        esFieldData.put(Util.cleanColumn(fieldItem.getFieldName()),
                getValFromData(mapping, dmlData, fieldItem.getFieldName(), columnName));
    }

用containsKey来判断修改了哪些字段,应该加上表的限定吧???

看是不是我理解错了,我使用时确实该rule表的name,es中,use表的也会被改掉

原提问者GitHub用户guozhenjiang01

展开
收起
Java工程师 2023-05-03 10:55:16 85 0
1 条回答
写回答
取消 提交回答
  • 1.13版本是有这个问题的。后来官方 已经改好了的

    原回答者GitHub用户yangyiweigege

    2023-05-04 14:57:41
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像