PGSQL+MyBatis使用&&变成AND

        开发的时候用到了&&函数,实际使用时发现被替换成了AND。

        预期执行sql,左侧是个数组字段,右侧是个子查询出来的数组

select array[1,2] && (select arrayFiled from t_test where id = 1)

        实际执行sql,&&被换成了AND

select array[1,2] AND (select arrayFiled from t_test where id = 1)

 

         后来发现有子查询时才会被替换成AND,如下所示,第二种情况下是没问题的

select array[1, 2] && (select arrayFiled from t_test where id = 1);

select array[1, 2] && array[2, 3];

         参考了一篇帖子后发现了问题,是Pagehelper插件中用到的jsqlparser的问题。原文点击跳转

         实践后找到以下版本是可以正常用的

        jsqlparser1.4版本及以下可用,1.4版本以上到3.1版本是有问题的,从3.2版本后修复了这个问题

        mybatis从5.2.0版本升级jsqlparser的版本到了3.2

        如果使用的是springboot的mybatis的话,对应的是1.3.0版本

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值