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

添加如下注解value代表默认值delval代表删除时的值

/**
     * 是否删除
     */
    @TableLogic(value = "0", delval = "1")
    @TableField(value = "del_flag")
    private Boolean delFlag;

下图是配置全部代码(如您知道上一步配置该添加到哪里,那就请忽略下面的代码配置)

import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;

/**
 * mybatis-plus配置
 **/
@Configuration
@MapperScan({"com.sjyf.gym.mapper.**", "com.sjyf.gym.mapper"})
public class MybatisPlusConfig {

    /**
     * 分页插件
     */
    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }

    /**
     * 分页
     * @param builder
     * @return
     */
    @Bean
    public ObjectMapper objectMapper (Jackson2ObjectMapperBuilder builder) {
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
        SimpleModule simpleModule = new SimpleModule();
        // 直接将所有的Long类型转换为String
        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
        simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
        objectMapper.registerModule(simpleModule);
        return objectMapper;
    }

    /**
     * 逻辑删除
     * @return
     */
    @Bean
    public ISqlInjector sqlInjector(){
        return new DefaultSqlInjector();
    }

}

到此这篇关于mybatis-plus逻辑删除无效的文章就介绍到这了,更多相关mybatis-plus逻辑删除内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(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-plus3.4.0逻辑删除报错的解决

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

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

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

  • 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之逻辑删除的实现

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

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

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

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

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

  • 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逻辑删除注解@TableLogic的使用

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

  • mybatis plus实现分页逻辑删除

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

  • mybatis postgresql 批量删除操作方法

    PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统.POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中.PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询.外键.触发器.视图.事务完整性.多版本并发控制等.同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型.函数.操作符.聚集函数.索引方法.过程

  • MybatisPlus中的删除和逻辑删除及区别介绍

    删除又分为逻辑删除和物理删除,那么它们有什么区别呢? 物理删除:真实删除,将对应数据从数据库中删除,之后查询不到此条被删除数据. 逻辑删除:假删除,将对应数据中代表是否被删除字段状态修改为"被删除状态",之后在数据库中仍旧能看到此条数据记录. 在我们日常开发中,为了保留数据,经常会使用逻辑删除的方式进行数据删除,下面我们就来看看物理删除与逻辑删除怎么实现的吧 首先假设我有这样一张表 实体类: package com.atguigu.mybatis_plus.entity; import

  • 详解MyBatisPlus逻辑删除与唯一索引冲突问题

    1.问题背景: 在开发中,我们经常会有逻辑删除和唯一索引同时使用的情况.但当使用mybatis plus时,如果同时使用逻辑删除和唯一索引,会报数据重复Duplicate entry的问题. 举个例子: 原来数据库结构: 这里location_id是唯一索引 CREATE TABLE `eam_location` ( `id` int(11) NOT NULL AUTO_INCREMENT, `location_id` varchar(50) UNIQUE NOT NULL COMMENT '位

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

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

随机推荐