实体类需要设置对应的注解,全都需要填充的
@ApiModelProperty(value = "逻辑删除 1(true)已删除, 0(false)未删除")
@TableLogic
@TableField(fill = FieldFill.INSERT)
private Integer isDeleted;
@ApiModelProperty(value = "创建时间")
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;
@ApiModelProperty(value = "更新时间")
@TableField(fill = FieldFill.INSERT)
private Date gmtModified;
然后响应的配置类了
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
//注意所有表都应该有相同的字段以实现对应的方法
//添加数据时
@Override
public void insertFill(MetaObject metaObject) {
//添加日期到指定字段中
setFieldValByName("gmtCreate", new Date(), metaObject);
setFieldValByName("gmtModified", new Date(), metaObject);
//逻辑删除的默认值
setFieldValByName("isDeleted", 0, metaObject);
}
//修改数据时
@Override
public void updateFill(MetaObject metaObject) {
setFieldValByName("gmtModified", new Date(), metaObject);
}
}
微服务模式在对应服务下添加sql输出也可的
#配置日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#逻辑删除
mybatis-plus.global-config.db-config.logic-delete-field=flag
mybatis-plus.global-config.db-config.logic-delete-value=1
mybatis-plus.global-config.db-config.logic-not-delete-value=0
最终效果是,删除的时候会自然置is_delete为1,不是实现物理删除。
在添加和更新数据时,也会同步替换掉对应的时间