From afd043051e4db00c93a4630b37fdf0540aaaa171 Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Tue, 20 Jun 2023 21:56:40 +0800 Subject: [PATCH] =?UTF-8?q?doc:=20=E6=B7=BB=E5=8A=A0=E5=A4=9A=E7=A7=8D?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=B1=BB=E5=9E=8B=E7=9A=84=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=84=E7=90=86=E5=99=A8=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/zh/core/logic-delete.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/docs/zh/core/logic-delete.md b/docs/zh/core/logic-delete.md index 361bef95..4bc2af17 100644 --- a/docs/zh/core/logic-delete.md +++ b/docs/zh/core/logic-delete.md @@ -122,12 +122,29 @@ globalConfig.setDeletedValueOfLogicDelete("..."); 此时,我们可以使用 LogicDeleteManager.execWithoutLogicDelete() 方法处理,代码如下: ```java -LogicDeleteManager.execWithoutLogicDelete(() -> - accountMapper.deleteById(1) +LogicDeleteManager.execWithoutLogicDelete(()-> + accountMapper.deleteById(1) ); ``` + 以上代码中,`accountMapper` 会直接对 `Account` 数据进行物理删除,忽略逻辑删除字段配置。 +## 内置逻辑删除处理器 + +MyBatis-Flex 提供了三种字段类型对应的逻辑删除处理器,用户可以根据逻辑删除字段的类型进行设置,它们分别是: + +| 处理器名称 | 对应字段类型 | 数据正常时的值 | 数据被删除时的值 | +|------------------------------|----------|---------|----------| +| IntegerLogicDeleteProcessor | integer | 0 | 1 | +| BooleanLogicDeleteProcessor | tinyint | false | true | +| DateTimeLogicDeleteProcessor | datetime | null | 被删除时间 | + +使用时,只需通过 `LogicDeleteManager` 来设置逻辑删除处理器即可,例如: + +```java +LogicDeleteManager.setProcessor(new DateTimeLogicDeleteProcessor); +``` + ## 自定义逻辑删除处理功能 在社区中,有许多用户提出希望使用时间类型,当删除时,设置删除字段为`当前时间`,当正常时,设置为 `0` 或者 `null`。