国家拨款农村建设查询的网站,长安企业建站,南宁公司网站建设,邢台专业网站建设推荐MybatisPlus的逻辑删除可以有效保留历史数据。之前没有用逻辑删除的项目#xff0c;想改造成逻辑删除总共需要几步#xff1f; 答案#xff1a;4步搞定
一、修改pom.xml的MybatisPlus版本#xff08;注意版本兼容性#xff09; properties...!--mybatis-… MybatisPlus的逻辑删除可以有效保留历史数据。之前没有用逻辑删除的项目想改造成逻辑删除总共需要几步 答案4步搞定
一、修改pom.xml的MybatisPlus版本注意版本兼容性 properties...!--mybatis-plus.version3.1.1/mybatis-plus.version--mybatis-plus.version3.3.0/mybatis-plus.version/properties
二、application.yml中添加逻辑删除配置
mybatis-plus:global-config:db-config:logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2) 建议字段使用deletedlogic-delete-value: 1 # 逻辑已删除值(默认为 1) 默认可以不配logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) 默认可以不配
三、在java实体类中增加标志位属性private boolean deleted;
package cc.mrbird.febs.cos.entity;import java.time.LocalDateTime;
import java.io.Serializable;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;/*** 耗材类型** author FanK*/
Data
EqualsAndHashCode(callSuper false)
Accessors(chain true)
public class ConsumableType implements Serializable {private static final long serialVersionUID 1L;TableId(value ID, type IdType.AUTO)private Integer id;/*** 耗材类别名称*/private String name;/*** 备注*/private String content;/*** 创建时间*/private String createDate;/*** 逻辑删除标志位*///TableLogic 3.3.0 版本后 可以不配TableLogic标签private boolean deleted;}四、在数据库表中增加标志位字段deleted类型bit 然后重启springboot逻辑删除即生效
修改前 修改后 需要注意的是如果这个表涉及到通过mapper.xml编写的复杂查询需要手动修改相关mapper.xml中的sql语句否则其他业务逻辑会出现异常。
比如 页面第一条数据在数据库中已经逻辑删除了但是仍显示在界面上。 需要在StockPutMapper.xml中添加查询条件
and sp.deleted 0 ?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecc.mrbird.febs.cos.dao.StockPutMapper!-- 分页获取入库记录 --select idstockPutByPage resultTypejava.util.LinkedHashMapSELECTsp.id,sp.num,sp.price,sp.custodian,sp.put_user AS putUser,sp.content,sp.create_date AS createDateFROMstock_put spWHERE 1 1!-- wh 添加逻辑删除后需要增加查询条件 --and sp.deleted 0if teststockPut.num ! null and stockPut.num ! AND sp.num LIKE CONCAT(%,#{stockPut.num},%)/ifif teststockPut.putUser ! null and stockPut.putUser ! AND sp.put_user LIKE CONCAT(%,#{stockPut.putUser},%)/ifif teststockPut.custodian ! null and stockPut.custodian ! AND sp.custodian LIKE CONCAT(%,#{stockPut.custodian},%)/if/select
/mapper15.扩展功能-逻辑删除_哔哩哔哩_bilibili
逻辑删除 | MyBatis-Plus