From 6ad154c6b36da9fd92e4c389cfc75a78eaa399a4 Mon Sep 17 00:00:00 2001
From: Suomm <1474983351@qq.com>
Date: Fri, 21 Jul 2023 14:20:39 +0800
Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20QueryWrapperAd?=
=?UTF-8?q?apter=20=E7=94=A8=E4=BA=8E=E6=89=A9=E5=B1=95=20QueryWrapper=20?=
=?UTF-8?q?=E7=B1=BB=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../core/query/QueryWrapperAdapter.java | 268 ++++++++++++++++++
1 file changed, 268 insertions(+)
create mode 100644 mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java
diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java
new file mode 100644
index 00000000..b2dc8b4d
--- /dev/null
+++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java
@@ -0,0 +1,268 @@
+/*
+ * Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com).
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.mybatisflex.core.query;
+
+import com.mybatisflex.core.table.TableDef;
+import com.mybatisflex.core.util.LambdaGetter;
+
+import java.util.Map;
+import java.util.function.Consumer;
+
+/**
+ * 抽象包装器。
+ *
+ * @param 包装器类型
+ * @author 王帅
+ * @since 2023-07-21
+ */
+@SuppressWarnings("unchecked")
+public abstract class QueryWrapperAdapter extends QueryWrapper {
+
+ @Override
+ public T select() {
+ return (T) this;
+ }
+
+ @Override
+ public T select(String... columns) {
+ super.select(columns);
+ return (T) this;
+ }
+
+ @Override
+ public T select(LambdaGetter... lambdaGetters) {
+ super.select(lambdaGetters);
+ return (T) this;
+ }
+
+ @Override
+ public T select(QueryColumn... queryColumns) {
+ super.select(queryColumns);
+ return (T) this;
+ }
+
+ @Override
+ public T select(QueryColumn[]... queryColumns) {
+ super.select(queryColumns);
+ return (T) this;
+ }
+
+ @Override
+ public T from(TableDef... tableDefs) {
+ super.from(tableDefs);
+ return (T) this;
+ }
+
+ @Override
+ public T from(Class>... entityClasses) {
+ super.from(entityClasses);
+ return (T) this;
+ }
+
+ @Override
+ public T from(String... tables) {
+ super.from(tables);
+ return (T) this;
+ }
+
+ @Override
+ public T from(QueryTable... tables) {
+ super.from(tables);
+ return (T) this;
+ }
+
+ @Override
+ public T from(QueryWrapper queryWrapper) {
+ super.from(queryWrapper);
+ return (T) this;
+ }
+
+ @Override
+ public T as(String alias) {
+ super.as(alias);
+ return (T) this;
+ }
+
+ @Override
+ public T where(QueryCondition queryCondition) {
+ super.where(queryCondition);
+ return (T) this;
+ }
+
+ @Override
+ public T where(String sql) {
+ super.where(sql);
+ return (T) this;
+ }
+
+ @Override
+ public T where(String sql, Object... params) {
+ super.where(sql, params);
+ return (T) this;
+ }
+
+ @Override
+ public T where(Map whereConditions) {
+ super.where(whereConditions);
+ return (T) this;
+ }
+
+ @Override
+ public T and(QueryCondition queryCondition) {
+ super.and(queryCondition);
+ return (T) this;
+ }
+
+ @Override
+ public T and(String sql) {
+ super.and(sql);
+ return (T) this;
+ }
+
+ @Override
+ public T and(String sql, Object... params) {
+ super.and(sql, params);
+ return (T) this;
+ }
+
+ @Override
+ public T and(Consumer consumer) {
+ super.and(consumer);
+ return (T) this;
+ }
+
+ @Override
+ public T or(QueryCondition queryCondition) {
+ super.or(queryCondition);
+ return (T) this;
+ }
+
+ @Override
+ public T or(String sql) {
+ super.or(sql);
+ return (T) this;
+ }
+
+ @Override
+ public T or(String sql, Object... params) {
+ super.or(sql, params);
+ return (T) this;
+ }
+
+ @Override
+ public T or(Consumer consumer) {
+ super.or(consumer);
+ return (T) this;
+ }
+
+ @Override
+ public T union(QueryWrapper unionQuery) {
+ super.union(unionQuery);
+ return (T) this;
+ }
+
+ @Override
+ public T unionAll(QueryWrapper unionQuery) {
+ super.unionAll(unionQuery);
+ return (T) this;
+ }
+
+ @Override
+ public T forUpdate() {
+ super.forUpdate();
+ return (T) this;
+ }
+
+ @Override
+ public T forUpdateNoWait() {
+ super.forUpdateNoWait();
+ return (T) this;
+ }
+
+ @Override
+ public T groupBy(String name) {
+ super.groupBy(name);
+ return (T) this;
+ }
+
+ @Override
+ public T groupBy(String... names) {
+ super.groupBy(names);
+ return (T) this;
+ }
+
+ @Override
+ public T groupBy(QueryColumn column) {
+ super.groupBy(column);
+ return (T) this;
+ }
+
+ @Override
+ public T groupBy(QueryColumn... columns) {
+ super.groupBy(columns);
+ return (T) this;
+ }
+
+ @Override
+ public T having(QueryCondition queryCondition) {
+ super.having(queryCondition);
+ return (T) this;
+ }
+
+ @Override
+ public T orderBy(QueryOrderBy... orderBys) {
+ super.orderBy(orderBys);
+ return (T) this;
+ }
+
+ @Override
+ public T orderBy(String... orderBys) {
+ super.orderBy(orderBys);
+ return (T) this;
+ }
+
+ @Override
+ public T limit(Integer rows) {
+ super.limit(rows);
+ return (T) this;
+ }
+
+ @Override
+ public T offset(Integer offset) {
+ super.offset(offset);
+ return (T) this;
+ }
+
+ @Override
+ public T limit(Integer offset, Integer rows) {
+ super.limit(offset, rows);
+ return (T) this;
+ }
+
+ @Override
+ public T datasource(String datasource) {
+ super.datasource(datasource);
+ return (T) this;
+ }
+
+ @Override
+ public T hint(String hint) {
+ super.hint(hint);
+ return (T) this;
+ }
+
+}
From 34148e89741632eb45dc415fdae4cd7d82a0eeb8 Mon Sep 17 00:00:00 2001
From: Suomm <1474983351@qq.com>
Date: Fri, 21 Jul 2023 14:28:06 +0800
Subject: [PATCH 2/5] remove: QueryWrapperAdapter
---
.../core/query/QueryWrapperAdapter.java | 268 ------------------
1 file changed, 268 deletions(-)
delete mode 100644 mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java
diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java
deleted file mode 100644
index b2dc8b4d..00000000
--- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/*
- * Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com).
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.mybatisflex.core.query;
-
-import com.mybatisflex.core.table.TableDef;
-import com.mybatisflex.core.util.LambdaGetter;
-
-import java.util.Map;
-import java.util.function.Consumer;
-
-/**
- * 抽象包装器。
- *
- * @param 包装器类型
- * @author 王帅
- * @since 2023-07-21
- */
-@SuppressWarnings("unchecked")
-public abstract class QueryWrapperAdapter extends QueryWrapper {
-
- @Override
- public T select() {
- return (T) this;
- }
-
- @Override
- public T select(String... columns) {
- super.select(columns);
- return (T) this;
- }
-
- @Override
- public T select(LambdaGetter... lambdaGetters) {
- super.select(lambdaGetters);
- return (T) this;
- }
-
- @Override
- public T select(QueryColumn... queryColumns) {
- super.select(queryColumns);
- return (T) this;
- }
-
- @Override
- public T select(QueryColumn[]... queryColumns) {
- super.select(queryColumns);
- return (T) this;
- }
-
- @Override
- public T from(TableDef... tableDefs) {
- super.from(tableDefs);
- return (T) this;
- }
-
- @Override
- public T from(Class>... entityClasses) {
- super.from(entityClasses);
- return (T) this;
- }
-
- @Override
- public T from(String... tables) {
- super.from(tables);
- return (T) this;
- }
-
- @Override
- public T from(QueryTable... tables) {
- super.from(tables);
- return (T) this;
- }
-
- @Override
- public T from(QueryWrapper queryWrapper) {
- super.from(queryWrapper);
- return (T) this;
- }
-
- @Override
- public T as(String alias) {
- super.as(alias);
- return (T) this;
- }
-
- @Override
- public T where(QueryCondition queryCondition) {
- super.where(queryCondition);
- return (T) this;
- }
-
- @Override
- public T where(String sql) {
- super.where(sql);
- return (T) this;
- }
-
- @Override
- public T where(String sql, Object... params) {
- super.where(sql, params);
- return (T) this;
- }
-
- @Override
- public T where(Map whereConditions) {
- super.where(whereConditions);
- return (T) this;
- }
-
- @Override
- public T and(QueryCondition queryCondition) {
- super.and(queryCondition);
- return (T) this;
- }
-
- @Override
- public T and(String sql) {
- super.and(sql);
- return (T) this;
- }
-
- @Override
- public T and(String sql, Object... params) {
- super.and(sql, params);
- return (T) this;
- }
-
- @Override
- public T and(Consumer consumer) {
- super.and(consumer);
- return (T) this;
- }
-
- @Override
- public T or(QueryCondition queryCondition) {
- super.or(queryCondition);
- return (T) this;
- }
-
- @Override
- public T or(String sql) {
- super.or(sql);
- return (T) this;
- }
-
- @Override
- public T or(String sql, Object... params) {
- super.or(sql, params);
- return (T) this;
- }
-
- @Override
- public T or(Consumer consumer) {
- super.or(consumer);
- return (T) this;
- }
-
- @Override
- public T union(QueryWrapper unionQuery) {
- super.union(unionQuery);
- return (T) this;
- }
-
- @Override
- public T unionAll(QueryWrapper unionQuery) {
- super.unionAll(unionQuery);
- return (T) this;
- }
-
- @Override
- public T forUpdate() {
- super.forUpdate();
- return (T) this;
- }
-
- @Override
- public T forUpdateNoWait() {
- super.forUpdateNoWait();
- return (T) this;
- }
-
- @Override
- public T groupBy(String name) {
- super.groupBy(name);
- return (T) this;
- }
-
- @Override
- public T groupBy(String... names) {
- super.groupBy(names);
- return (T) this;
- }
-
- @Override
- public T groupBy(QueryColumn column) {
- super.groupBy(column);
- return (T) this;
- }
-
- @Override
- public T groupBy(QueryColumn... columns) {
- super.groupBy(columns);
- return (T) this;
- }
-
- @Override
- public T having(QueryCondition queryCondition) {
- super.having(queryCondition);
- return (T) this;
- }
-
- @Override
- public T orderBy(QueryOrderBy... orderBys) {
- super.orderBy(orderBys);
- return (T) this;
- }
-
- @Override
- public T orderBy(String... orderBys) {
- super.orderBy(orderBys);
- return (T) this;
- }
-
- @Override
- public T limit(Integer rows) {
- super.limit(rows);
- return (T) this;
- }
-
- @Override
- public T offset(Integer offset) {
- super.offset(offset);
- return (T) this;
- }
-
- @Override
- public T limit(Integer offset, Integer rows) {
- super.limit(offset, rows);
- return (T) this;
- }
-
- @Override
- public T datasource(String datasource) {
- super.datasource(datasource);
- return (T) this;
- }
-
- @Override
- public T hint(String hint) {
- super.hint(hint);
- return (T) this;
- }
-
-}
From bab86b47197ac248e1023865da4b237796b9c11e Mon Sep 17 00:00:00 2001
From: Suomm <1474983351@qq.com>
Date: Fri, 21 Jul 2023 20:23:50 +0800
Subject: [PATCH 3/5] refactor: open method.
---
.../AbstractLogicDeleteProcessor.java | 4 ++--
.../core/logicdelete/LogicDeleteProcessor.java | 18 ++++++++++++++++--
.../impl/BooleanLogicDeleteProcessor.java | 6 +++---
.../impl/DateTimeLogicDeleteProcessor.java | 6 +++---
.../impl/DefaultLogicDeleteProcessor.java | 4 ++--
.../impl/IntegerLogicDeleteProcessor.java | 6 +++---
.../impl/TimeStampLogicDeleteProcessor.java | 6 +++---
7 files changed, 32 insertions(+), 18 deletions(-)
diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/AbstractLogicDeleteProcessor.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/AbstractLogicDeleteProcessor.java
index 60dc6904..cc55732a 100644
--- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/AbstractLogicDeleteProcessor.java
+++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/AbstractLogicDeleteProcessor.java
@@ -52,14 +52,14 @@ public abstract class AbstractLogicDeleteProcessor implements LogicDeleteProcess
*
* @return 未删除标记值
*/
- protected abstract Object getLogicNormalValue();
+ public abstract Object getLogicNormalValue();
/**
* 获取逻辑删除列删除时标记值。
*
* @return 删除时标记值
*/
- protected abstract Object getLogicDeletedValue();
+ public abstract Object getLogicDeletedValue();
}
diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/LogicDeleteProcessor.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/LogicDeleteProcessor.java
index 8e343786..fc99bd84 100644
--- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/LogicDeleteProcessor.java
+++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/LogicDeleteProcessor.java
@@ -28,7 +28,7 @@ public interface LogicDeleteProcessor {
* 用户构建查询正常数据的条件。
*
* @param logicColumn 逻辑删除列
- * @param tableInfo
+ * @param tableInfo 表信息
* @param dialect 数据库方言
*/
String buildLogicNormalCondition(String logicColumn, TableInfo tableInfo, IDialect dialect);
@@ -37,7 +37,7 @@ public interface LogicDeleteProcessor {
* 用户与构建删除数据时的内容。
*
* @param logicColumn 逻辑删除列
- * @param tableInfo
+ * @param tableInfo 表信息
* @param dialect 数据库方言
*/
String buildLogicDeletedSet(String logicColumn, TableInfo tableInfo, IDialect dialect);
@@ -50,6 +50,20 @@ public interface LogicDeleteProcessor {
*/
void buildQueryCondition(QueryWrapper queryWrapper, TableInfo tableInfo);
+ /**
+ * 获取逻辑删除列未删除标记值。
+ *
+ * @return 未删除标记值
+ */
+ Object getLogicNormalValue();
+
+ /**
+ * 获取逻辑删除列删除时标记值。
+ *
+ * @return 删除时标记值
+ */
+ Object getLogicDeletedValue();
+
}
diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/BooleanLogicDeleteProcessor.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/BooleanLogicDeleteProcessor.java
index cc8e1017..87b90c44 100644
--- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/BooleanLogicDeleteProcessor.java
+++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/BooleanLogicDeleteProcessor.java
@@ -30,7 +30,7 @@ public class BooleanLogicDeleteProcessor extends AbstractLogicDeleteProcessor {
* 逻辑删除字段值为 {@code false} 表示数据未删除。
*/
@Override
- protected Object getLogicNormalValue() {
+ public Object getLogicNormalValue() {
return false;
}
@@ -38,8 +38,8 @@ public class BooleanLogicDeleteProcessor extends AbstractLogicDeleteProcessor {
* 逻辑删除字段值为 {@code true} 表示数据删除。
*/
@Override
- protected Object getLogicDeletedValue() {
+ public Object getLogicDeletedValue() {
return true;
}
-}
\ No newline at end of file
+}
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 1f842be0..beedb5e0 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
@@ -45,7 +45,7 @@ public class DateTimeLogicDeleteProcessor extends AbstractLogicDeleteProcessor {
* 逻辑删除字段值为 {@code null} 表示数据未删除。
*/
@Override
- protected Object getLogicNormalValue() {
+ public Object getLogicNormalValue() {
return null;
}
@@ -53,8 +53,8 @@ public class DateTimeLogicDeleteProcessor extends AbstractLogicDeleteProcessor {
* 逻辑删除字段值为 {@code NOW()} 表示数据删除,并记录删除时间。
*/
@Override
- protected Object getLogicDeletedValue() {
+ public Object getLogicDeletedValue() {
return "NOW()";
}
-}
\ No newline at end of file
+}
diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/DefaultLogicDeleteProcessor.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/DefaultLogicDeleteProcessor.java
index 33ea24ef..19566fdb 100644
--- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/DefaultLogicDeleteProcessor.java
+++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/DefaultLogicDeleteProcessor.java
@@ -37,7 +37,7 @@ public class DefaultLogicDeleteProcessor extends AbstractLogicDeleteProcessor {
@Override
- protected Object getLogicNormalValue() {
+ public Object getLogicNormalValue() {
Object normalValueOfLogicDelete = FlexGlobalConfig.getDefaultConfig().getNormalValueOfLogicDelete();
if (normalValueOfLogicDelete instanceof Number
|| normalValueOfLogicDelete instanceof Boolean) {
@@ -48,7 +48,7 @@ public class DefaultLogicDeleteProcessor extends AbstractLogicDeleteProcessor {
@Override
- protected Object getLogicDeletedValue() {
+ public Object getLogicDeletedValue() {
Object deletedValueOfLogicDelete = FlexGlobalConfig.getDefaultConfig().getDeletedValueOfLogicDelete();
if (deletedValueOfLogicDelete instanceof Number
|| deletedValueOfLogicDelete instanceof Boolean) {
diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/IntegerLogicDeleteProcessor.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/IntegerLogicDeleteProcessor.java
index be981042..e92345ae 100644
--- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/IntegerLogicDeleteProcessor.java
+++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/IntegerLogicDeleteProcessor.java
@@ -30,7 +30,7 @@ public class IntegerLogicDeleteProcessor extends AbstractLogicDeleteProcessor {
* 逻辑删除字段值为 {@code 0} 表示数据未删除。
*/
@Override
- protected Object getLogicNormalValue() {
+ public Object getLogicNormalValue() {
return 0;
}
@@ -38,8 +38,8 @@ public class IntegerLogicDeleteProcessor extends AbstractLogicDeleteProcessor {
* 逻辑删除字段值为 {@code 1} 表示数据删除。
*/
@Override
- protected Object getLogicDeletedValue() {
+ public Object getLogicDeletedValue() {
return 1;
}
-}
\ No newline at end of file
+}
diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/TimeStampLogicDeleteProcessor.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/TimeStampLogicDeleteProcessor.java
index 8cd2f6f2..61d4d8a4 100644
--- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/TimeStampLogicDeleteProcessor.java
+++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/TimeStampLogicDeleteProcessor.java
@@ -30,7 +30,7 @@ public class TimeStampLogicDeleteProcessor extends AbstractLogicDeleteProcessor
* 逻辑删除字段值为 {@code 0} 表示数据未删除。
*/
@Override
- protected Object getLogicNormalValue() {
+ public Object getLogicNormalValue() {
return 0;
}
@@ -38,8 +38,8 @@ public class TimeStampLogicDeleteProcessor extends AbstractLogicDeleteProcessor
* 逻辑删除字段值为 {@code NOW()} 表示数据删除,并记录删除时时间戳。
*/
@Override
- protected Object getLogicDeletedValue() {
+ public Object getLogicDeletedValue() {
return System.currentTimeMillis();
}
-}
\ No newline at end of file
+}
From 3ecd1beb37fbbb8dd750d2325fec6eb6d31b9212 Mon Sep 17 00:00:00 2001
From: Suomm <1474983351@qq.com>
Date: Fri, 21 Jul 2023 20:25:25 +0800
Subject: [PATCH 4/5] =?UTF-8?q?fix:=20=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4?=
=?UTF-8?q?=E6=AD=A3=E5=B8=B8=E5=80=BC=E5=88=9D=E5=A7=8B=E5=8C=96=E9=94=99?=
=?UTF-8?q?=E8=AF=AF=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/mybatisflex/core/table/TableInfo.java | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java
index 8f22ac4b..63db2a0f 100644
--- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java
+++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfo.java
@@ -1178,12 +1178,15 @@ public class TableInfo {
}
MetaObject metaObject = EntityMetaObject.forObject(entityObject, reflectorFactory);
- Object columnValue = getPropertyValue(metaObject, columnInfoMapping.get(logicDeleteColumn).property);
+ ColumnInfo logicDeleteColumn = columnInfoMapping.get(this.logicDeleteColumn);
+ Object columnValue = getPropertyValue(metaObject, logicDeleteColumn.property);
if (columnValue == null) {
- String property = columnInfoMapping.get(logicDeleteColumn).property;
- Class> setterType = metaObject.getSetterType(property);
- Object normalValueOfLogicDelete = FlexGlobalConfig.getDefaultConfig().getNormalValueOfLogicDelete();
- metaObject.setValue(property, ConvertUtil.convert(normalValueOfLogicDelete, setterType));
+ Object normalValueOfLogicDelete = LogicDeleteManager.getProcessor().getLogicNormalValue();
+ if (normalValueOfLogicDelete != null) {
+ String property = logicDeleteColumn.property;
+ Class> setterType = metaObject.getSetterType(property);
+ metaObject.setValue(property, ConvertUtil.convert(normalValueOfLogicDelete, setterType));
+ }
}
}
From 07d5816babd43cdc045167da7ca34c9f0b5ae1dd Mon Sep 17 00:00:00 2001
From: Suomm <1474983351@qq.com>
Date: Fri, 21 Jul 2023 20:28:02 +0800
Subject: [PATCH 5/5] =?UTF-8?q?doc:=20=E9=93=BE=E6=8E=A5=E5=A4=B1=E6=95=88?=
=?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
docs/zh/core/logic-delete.md | 38 +++++++++++++++++++++---------------
1 file changed, 22 insertions(+), 16 deletions(-)
diff --git a/docs/zh/core/logic-delete.md b/docs/zh/core/logic-delete.md
index 01e51250..a2793b9e 100644
--- a/docs/zh/core/logic-delete.md
+++ b/docs/zh/core/logic-delete.md
@@ -20,7 +20,7 @@ public class Account {
@Column(isLogicDelete = true)
private Boolean isDelete;
-
+
//Getter Setter...
}
```
@@ -33,8 +33,10 @@ accountMapper.deleteById(1);
MyBatis 执行的 SQL 如下:
```sql
-UPDATE `tb_account` SET `is_delete` = 1
-WHERE `id` = ? AND `is_delete` = 0
+UPDATE `tb_account`
+SET `is_delete` = 1
+WHERE `id` = ?
+ AND `is_delete` = 0
```
可以看出,当执行 deleteById 时,MyBatis 只是进行了 update 操作,而非 delete 操作。
@@ -66,10 +68,12 @@ QueryWrapper query1 = QueryWrapper.create()
其执行的 SQL 如下:
```sql
-SELECT * FROM `tb_account`
- LEFT JOIN `tb_article` AS `a` ON `tb_account`.`id` = `a`.`account_id`
-WHERE `tb_account`.`age` >= 10
- AND `tb_account`.`is_delete` = 0 AND `a`.`is_delete` = 0
+SELECT *
+FROM `tb_account`
+ LEFT JOIN `tb_article` AS `a` ON `tb_account`.`id` = `a`.`account_id`
+WHERE `tb_account`.`age` >= 10
+ AND `tb_account`.`is_delete` = 0
+ AND `a`.`is_delete` = 0
```
自动添加上 `tb_account.is_delete = 0 AND a.is_delete = 0` 条件。
@@ -90,12 +94,14 @@ WHERE `tb_account`.`age` >= 10
其执行的 SQL 如下:
```sql
-SELECT * FROM `tb_account`
- LEFT JOIN (
- SELECT * FROM `tb_article` WHERE `id` >= 100 AND `is_delete` = 0
- ) AS `a`
- ON `tb_account`.`id` = a.id
-WHERE `tb_account`.`age` >= 10 AND `tb_account`.`is_delete` = 0
+SELECT *
+FROM `tb_account`
+ LEFT JOIN (SELECT *
+ FROM `tb_article`
+ WHERE `id` >= 100 AND `is_delete` = 0) AS `a`
+ ON `tb_account`.`id` = a.id
+WHERE `tb_account`.`age` >= 10
+ AND `tb_account`.`is_delete` = 0
```
@@ -179,7 +185,7 @@ public interface LogicDeleteProcessor {
}
```
-具体实现可以参考:[DefaultLogicDeleteProcessorImpl](https://gitee.com/mybatis-flex/mybatis-flex/blob/main/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/DefaultLogicDeleteProcessorImpl.java)
+具体实现可以参考:[DefaultLogicDeleteProcessor](https://gitee.com/mybatis-flex/mybatis-flex/blob/main/mybatis-flex-core/src/main/java/com/mybatisflex/core/logicdelete/impl/DefaultLogicDeleteProcessor.java)
## SpringBoot 支持
@@ -195,6 +201,6 @@ public class MyConfiguration {
LogicDeleteProcessor processor = new ....;
return processor;
}
-
+
}
-```
\ No newline at end of file
+```