mybatis-plus 如何配置逻辑删除

目录
  • mybatis-plus配置逻辑删除
  • 逻辑删除失效原因及解决方案
    • 测试依赖
    • 解决方案

mybatis-plus配置逻辑删除

引入jar包

<!--mybatis-plus-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.2</version>
        </dependency>

配置逻辑删除(application.properties)

##mybatis-plus逻辑删除设置
#3.1.1开始不再需要这一步
##mybatis-plus.global-config.sql-injector=com.baomidou.mybatisplus.mapper.LogicSqlInjector
#配置逻辑删除字段为1是删除
mybatis-plus.global-config.logic-delete-value=1
#配置逻辑删除字段为0是未删除
mybatis-plus.global-config.logic-not-delete-value=0
配置逻辑删除字段(在字段上打注解:@TabkeLogic)

逻辑删除失效原因及解决方案

mybatisplus官方的更新文档中表示 在3.1.1版本及以上 都不需要手动注册逻辑删除插件,但如果两者(mybatislplus依赖 和代码生成器依赖)版本不一致,则会出现逻辑删除失效

注意:博主使用 mybatislplus-boot启动器依赖 和代码生成器依赖来测试,其他无法保证

测试依赖

<!--mybatis plus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.1.1</version>
</dependency>
<!-- MP代码生成器 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.1.0</version>
</dependency>

解决方案

如果使用mybatisPlus中的功能,最好涉及MybatisPlus的依赖的版本最好一致,防止功能失效。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 关于mybatis-plus逻辑删除无效的问题

    添加如下注解value代表默认值delval代表删除时的值 /** * 是否删除 */ @TableLogic(value = "0", delval = "1") @TableField(value = "del_flag") private Boolean delFlag; 下图是配置全部代码(如您知道上一步配置该添加到哪里,那就请忽略下面的代码配置) import com.baomidou.mybatisplus.core.injector

  • MyBatis-Plus实现逻辑删除的示例代码

    目录 一.引言 二.具体实现 步骤一:首先我们需要配置未删除.已删除分别标识的状态码是什么,这里采用的yml格式. 步骤二:在实体类对应的字段上加上注解@TableLogic即可. 步骤三:测试测试,现在我们测试通过ID来删除某一个用户的时,看看执行的SQL语句是UPDATE了. 三.使用注意细节 一.引言 之前小编讲了MP从入门到核心功能的使用,接下来这几天小编会把MP在实际项目中,一些常用的高级功能给记录一下. 高级功能分为:逻辑删除.自动填充.乐观锁插件.性能分析插件.多租户SQL解析器.

  • 关于mybatis-plus逻辑删除自动填充更新时间的问题

    目录 前言 问题发现 寻找原因 解决方法 方法一 方法二 补充写法 前言 mybatis-plus是对mybatis的增强,mybatis-plus更像是面向对象编程,数据库基本CRUD的操作可以不用手动编写SQL语句,大大提高了开发的效率. mybatis-plus有一个扩展功能:自动填充.此功能常见的应用场景为,插入数据的时候自动添加创建时间.创建人.修改时间.修改人.删除标记.通过实现MetaObjectHandler接口,重写insertFill.updateFill方法,当我们插入和修

  • mybatis-plus 通用字段自动化(如逻辑删除和更新时间等)

    一般来说某些项目比较规范的情况下,大多数表都会有逻辑删除字段和通用字段,例如更新时间,创建时间,更新人,创建人等等,但是在代码开发上会产生很多冗余的代码,逻辑删除的话,自己写比较繁琐,而且容易有遗漏逻辑. 本来打算自己写切面去实现,偶然发现mybatis-plus已经帮封装实现了,试了一下,很好用,所以分享一下. 逻辑删除 逻辑删除的意思就是某些业务表,在用户删除某条数据的时候,不真正删除,而是将此数据某字段改成类似"已删除",而查询语句.更新语句等会忽略此条被逻辑删除的数据. 这里就

  • mybatis-plus3.4.0逻辑删除报错的解决

    特别注意!!! 无论数据库字段,实体类字段,还是平时取其它字段名字时候,或者方法这些名字,一定不能和关键字重名,因为这样可能出现一些让人无法看出的错误 在进行mybatis-plus逻辑删除字段时候,我在数据库定义了delete字段定义为int类型,默认值是0,然后又在实体类中定义了这个字段delete并且在实体类的这个字段上面添加了注解@TableLogic,并且在application.properties中开启.(我使用的是3.4.0) 根据官方文档,在3.4.0版本中只需要以上两个步骤即

  • springboot+mybatis-plus+oracle实现逻辑删除

    最近在做一个前后端分离的小项目,需要删除用户表的用户,但是用户再别的表做了外键,所以只能做成逻辑删除,一通百度查资料后得以实现: 1.用户实体类 package com.sie.demo.entity; import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.

  • mybatis-plus getOne和逻辑删除问题详解

    1.getOne 如果查询出的结果有多个,这时候会抛异常 这样就不用每次getOne的Wrapper后面还跟last("limit 1") 2.@TableLogic 就不用每次list查询的时候跟上 .eq("deleted",false)了 PS:下面再次强调下Mybatis-Plus中的逻辑删除 1. 需要在删除的字段上添加注解@TableLogic 2. 在配置文件中写上配置 mybatis-plus: global-config: db-config: l

  • MyBatis-Plus的物理删除和逻辑删除(使用场景)

    物理删除:真实删除,将数据从数据库中删除,删除后查询不到被删除的数据 逻辑删除:假删除,方便删除之后的数据恢复 在表中添加一个status字段,作为删除的标准,每次删除时,修改标志位,0代表没有删除,1代表删除 被删除记录的status字段被修改为"被删除状态"(1),删除后还可以查询到数据 逻辑删除的使用场景 1.需要进行数据恢复 2.有关联数据,不便删除 # mysql //测试逻辑删除 status int null default null # 实体类 //实现逻辑删除 @Ta

  • MyBatis-Plus之逻辑删除的实现

    特别是互联网项目,对于数据一般是不能删除的(涉及到后面的数据分析),这就涉及到逻辑删除.所谓逻辑删除指的是数据并不是真正的删除,只是改数据表对应数据的状态(数据表中通常有一列叫delFlag,以此标识正常状态或删除状态).逻辑删除一般都是更新操作,但写大量更新方法无疑是增加代码量,MyBatis-Plus又是如何实现逻辑删除的呢?其实很简单一共两步. 一.配置文件配置 mybatis-plus: global-config: db-config: logic-delete-value: 1 #

  • mybatis plus实现分页逻辑删除

    一.分页 通过mybatis-plus实现分页,也是很简单,插件大法. 1.配置分页插件 把分页的插件也配置到统一的配置类里: @Configuration // 配置扫描mapper的路径 @MapperScan("com.pingguo.mpdemo.mapper") public class MpConfig { // 乐观锁插件 @Bean public OptimisticLockerInterceptor optimisticLockerInterceptor() { re

  • mybatis-plus 如何配置逻辑删除

    目录 mybatis-plus配置逻辑删除 逻辑删除失效原因及解决方案 测试依赖 解决方案 mybatis-plus配置逻辑删除 引入jar包 <!--mybatis-plus-->         <dependency>             <groupId>com.baomidou</groupId>             <artifactId>mybatis-plus-boot-starter</artifactId>

  • MyBatis Plus逻辑删除和分页插件使用详解

    概要:Mybatis plus 官网链接 :https://mp.baomidou.com/guide/ 一.依赖配置: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x

  • Mybatis plus逻辑删除失败的BUG操作

    开发调试的时候发现Mybatis Plus的逻辑删除失效了,看了下配置文件发现没有问题,通过查看以下源码发现 逻辑删除需要注入的bean,查看这个bean的源码如下 查看其中一个实例的类的源码,如通过ID逻辑删除LogicDeleteById的源码,如下 mp在项目启动时预加载SQL是通过TableInfo中logicDelete字段判断是否开启逻辑删除的.然后让我们来看看mp内部是如何判断是否开启逻辑删除的. 先看如下源码 大概就是讲实体类中的字段进行循环映射数据库字段并封装到TableFie

  • Mybatis plus逻辑删除注解@TableLogic的使用

    目录 物理删除和逻辑删除 @TableLogic注解 @TableLogic注解默认值: @TableLogic注解用法 首先这个注解是苞米豆出品,也就是我们常说的mybatis升级版的东西. 简单讲一下这个注解的用法:我们在做数据库设计的时候有时候哪怕是删除也不会真的走物理删除,毕竟这样很多数据就不可恢复了,大多数时候很多删除都是用逻辑删除. 物理删除和逻辑删除 简单来说物理删除就是真的把这条数据从数据库删除了.而逻辑删除主要是把表中的某一个字段作为标识符,一般我们常用的会默认初始为0,当我们

  • MyBatis-Plus解决逻辑删除与唯一索引的问题

    目录 简介 问题复现 建库建表 代码 测试 解决方案 方案1:将字段设置为id(推荐) 方案2:将字段设置为当前时间(不推荐) 简介 说明 本文用示例介绍MyBatis-Plus如何解决逻辑删除与唯一索引的问题. 物理删除与逻辑删除 数据是很重要的,数据库里的数据在删除时一般不会用DELETE语句直接物理删除. 通常的做法是使用逻辑删除,也就是:新加一个标记是否删除的字段,在删除时不是真的删除,而是使用UPDATE语句将某个字段设置为删除状态.例如:"deleted_flag",0表示

随机推荐