当前使用版本(必须填写清楚,否则不予处理)
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 中发现, 还是拼接在最前面呢? 有解决办法吗?