当前使用版本(必填,否则不予处理)

3.4.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

1.自定义一个A表的XML 2.传入QueryWrapper对象作为Where条件( ${ew.customSqlSegment} ) 3.传入Page对象作为分页条件 4.同时关联B表

此时分页插件只会出现一个表 SELECT COUNT(*) FROM 表 AS t1 WHERE (Wrapper生成的条件)

而Wrapper的条件中包含了B表的字段,就会报字段不存在的错: Cause: java.sql.SQLSyntaxErrorException: Unknown column '字段' in 'where clause'

原因:

因为分页插件count时只有一个A表,但如果移除掉Wrapper的条件,改为直接写死在xml中,则插件会带上该关联表

暂时解决方案:

1.在xml中写死一个表B的无意义的相等条件,这样插件就能扫到。 2.分页插件关掉连表优化,optimizeJoin =false,但是只针对left join

推测

有可能先分页后注入的条件,导致分页无法分析到注入的条件,表B自动被优化掉了

Comment From: qmdx

未提供明显不可用复杂 sql 无法测试,如果 sql 无法解析可以反馈 至 https://github.com/JSQLParser/JSqlParser

关闭 page 自动优化