From 1d769c8d413c82518ac1c82a9bbddf996340c19a Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Wed, 21 Jun 2023 10:51:00 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=20IS=20NULL=20?= =?UTF-8?q?=E4=BB=A3=E6=9B=BF=20=3D=20null=20=E5=88=A4=E6=96=AD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DateTimeLogicDeleteProcessor.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/DateTimeLogicDeleteProcessor.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/DateTimeLogicDeleteProcessor.java index c388af3f..3b33a050 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/DateTimeLogicDeleteProcessor.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/DateTimeLogicDeleteProcessor.java @@ -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()"; } } \ No newline at end of file