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

3.0.6

该问题是怎么引起的?(最新版上已修复的会直接close掉)

在update更新或者分页查询时,逻辑删除语句会拼接在where条件前面。导致不走索引 (我们组合索引一般是把逻辑删除字段放在最后面)

能不能在拼接查询条件时做如下判断:

if normal.isEmpty()
    return 逻辑删除条件 + groupBy.getSqlSegment() + having.getSqlSegment() + orderBy.getSqlSegment();
else
    return normal.getSqlSegment() + 逻辑删除条件 + groupBy.getSqlSegment() + having.getSqlSegment() + orderBy.getSqlSegment();

重现步骤

报错信息

Comment From: miemieYaho

逻辑删除不是 wrapper 内部拼接的

Comment From: leiliang163

你们是用模板替换的,但是这样会导致逻辑删除条件会在where语句最前面。导致不走索引

Comment From: Nisus-Liu

?? 这个问题我在 3.3.2 中发现, 还是拼接在最前面呢? 有解决办法吗?