逻辑删除 
说明 
逻辑删除注解,让删除变成修改,就是伪删除; 
注意:DeleteChain操作删除,逻辑删除不会生效!!!
1 属性 beforeValue 
未删除前的值,只能是固定值;时间类型的逻辑,可不填
2 属性 afterValue 
删除后的值,可固定值或者动态值 例如 afterValue = "{NOW}",目前支持LocalDateTime,Date,Long,Integer,框架自动给值
3 属性 deleteTimeField 
逻辑删除的时间字段,可不填,填了系统自动update 时 设置删除时间,deleteTimeField对应的字段类型 支持:LocalDateTime,Date,Long,Integer类型
4 逻辑删除额外字段填充 
需要设置逻辑删除拦截,update操作对象进行操作,例如
    //项目启动时设置
    XbatisGlobalConfig.setLogicDeleteInterceptor((entity, update) -> {
        //设置操作人 123
        update.set(update.$(entity, "deleteUserId"), 123);
    });5 全局开关(默认开) 
java
XbatisGlobalConfig.setLogicDeleteSwitch(true);6 局部开关 
java
try (LogicDeleteSwitch ignored = LogicDeleteSwitch.with(false)) {
    logicDeleteTestMapper.getById(1);
}上面代码必须try (LogicDeleteSwitch ignored = LogicDeleteSwitch.with(false))
或
下面的更简单:
java
LogicDeleteTest logicDeleteTest = LogicDeleteUtil.execute(false, () -> {
    return logicDeleteTestMapper.getById(1);
});示例 
实体类 
java
@Data
@Table
public class SysUser {
    @TableId
    private Integer id;
    private String userName;
    private String password;
    
    private Integer roleId;
    private LocalDateTime createTime;
    private LocalDateTime deleteTime;
    @LogicDelete(beforeValue = "0", afterValue = "1", deleteTimeField = "deleteTime")
    private Byte deleted; 
}Mapper 
继承 MybatisMapper 即可
java
public interface SysUserMapper extends MybatisMapper<SysUser> {
}如何使用 
java
@Service
public class Test{
    @Autowired
    private SysUserMapper sysUserMapper;
    public void demo() {
        sysUserMapper.deleteById(1);
    }
}自动把delete 改成 update 语句;前往@LogicDelete 查看
