mybatis-flex / mybatis-flex

mybatis-flex is an elegant Mybatis Enhancement Framework

Home Page:https://mybatis-flex.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

连表分页查询的where中使用QueryMethods导致count查询优化错误

gmmp opened this issue · comments

示例查询:
QueryWrapper wrapper = QueryWrapper.create().from(SHOOT_DEVICE) .leftJoin(GOODS).on(SHOOT_DEVICE.GOODS_ID.eq(GOODS.ID)) .and(QueryMethods.lower(GOODS.TITLE).like(“test”));

问题描述:
当使用以上条件进行分页查询时,会出现SQL异常,找不到GOODS.TITLE对应的表。
排查后发现,在进行count查询优化时,判断 查询条件中是否用到关联表 的方法containsTable中 ,QueryMethods生成的FunctionQueryColumn对应的table为null,导致判断认为该关联表可以在查询中优化移除。

解决:
目前临时使用 page.setOptimizeCountQuery(false); 来禁用count查询优化。

但是请问是否可以在QueryMethods进行FunctionQueryColumn初始化时,把对应column的table也赋值也FunctionQueryColumn,来解决该问题,保证count查询优化的使用,谢谢。