refactor: 使用 IS NULL 代替 = null 判断。

This commit is contained in:
Suomm 2023-06-21 10:51:00 +08:00
parent 9166c6b32c
commit 1d769c8d41

View File

@ -16,8 +16,11 @@
package com.mybatisflex.core.logicdelete.impl;
import com.mybatisflex.core.dialect.IDialect;
import com.mybatisflex.core.logicdelete.AbstractLogicDeleteProcessor;
import com.mybatisflex.core.query.RawFragment;
import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.core.table.TableInfo;
/**
* {@link java.time.LocalDateTime} 类型的属性对应的逻辑删除处理器
@ -27,6 +30,17 @@ import com.mybatisflex.core.query.RawFragment;
*/
public class DateTimeLogicDeleteProcessor extends AbstractLogicDeleteProcessor {
@Override
public String buildLogicNormalCondition(String logicColumn, IDialect dialect) {
return dialect.wrap(logicColumn) + " IS NULL";
}
@Override
public void buildQueryCondition(QueryWrapper queryWrapper, TableInfo tableInfo) {
QueryColumn queryColumn = new QueryColumn(tableInfo.getSchema(), tableInfo.getTableName(), tableInfo.getLogicDeleteColumn());
queryWrapper.and(queryColumn.isNull());
}
/**
* 逻辑删除字段值为 {@code null} 表示数据未删除
*/
@ -40,7 +54,7 @@ public class DateTimeLogicDeleteProcessor extends AbstractLogicDeleteProcessor {
*/
@Override
protected Object getLogicDeletedValue() {
return new RawFragment("NOW()");
return "NOW()";
}
}