当前使用版本(必填,否则不予处理)
3.4.3.4
该问题是如何引起的?(确定最新版也有问题再提!!!)
最新版代码依然如此
wrapper.orderByAsc("case when col1>1 then col2 else col3 end");
order by不一定是字段可能是表达式或函数(例如:PG中的ST_GeomFromText('LINESTRING(-71.160281 42.258729,-71.160837 42.259113,-71.161144 42.25932)')),甚至部分数据库支持空格(oracle中加引号可以带空格,例如"column name")
重现步骤(如果有就写完整)
如上
报错信息
替换掉空格导致语法错误
Comment From: idlesysman
@qmdx https://github.com/baomidou/mybatis-plus/commit/5e6b1f4f35a4ec4a0f1db27031acadfb48bc5757 这个提交导致的
Comment From: idlesysman
😓看来这个bug不好解决
Comment From: qmdx
升级版本 3.5.1 应该就可以了
Comment From: idlesysman
测试了3.5.1,还是不行的.仍然会替换掉空格
Comment From: idlesysman
还是先用3.4.3.4顶住
Comment From: qmdx
wrapper.orderByAsc("case when col1>1 then col2 else col3 end"); 这属于 sql 注入了,是因为你出现了 when then 这种 注入 sql 片段, 你这段代码放在 .last("这里试试")
Comment From: idlesysman
last报错解析错误(pg的gis查询语法:(location<-> ST_GeomFromText('POINT(123 456)', 4326)) )。 我改xml文件了,谢谢