首页 > 其他分享 >解决MyBatis-Plus 更新字段为null 不生效

解决MyBatis-Plus 更新字段为null 不生效

时间:2023-12-20 10:23:41浏览次数:32  
标签:periodRecordOriginal 更新 字段 Plus MyBatis null

1.异常说明:

mapper.updateById()时, set为null 未生效,其他字段更新

                periodRecordOriginal.setSettleTime(null);
                periodRecordOriginal.setActualSettleTime(null);
                periodRecordOriginal.setSettleStatus(0);
                int i = periodRecordMapper.updateById(periodRecordOriginal);

2.原理:

MyBatis-Plus对字段的验证策略导致的,MyBatis-Plus默认进了不是全量更新的策略,默认忽略为null 的字段的

3.解决办法:

1)修改MyBatis-Plus 全局默认策略

缺点:这样做会对所有的字段都忽略判断,如果一些字段不想要修改,但是传值的时候没有传递过来,就会被更新为null

mybatis-plus:
  global-config:
      #字段策略 0:"忽略判断",1:"非 NULL 判断",2:"非空判断"
    field-strategy: 0

2)修改实体类注解,改变字段的忽略判断

缺点:需要注意数据库字段是否设置为 非null ,如果为非null 也更新不成功

@TableField( updateStrategy = FieldStrategy.IGNORED)
    private Date settleTime;

标签:periodRecordOriginal,更新,字段,Plus,MyBatis,null
From: https://www.cnblogs.com/mike-mei/p/17915890.html

相关文章

  • 【SpringBootWeb入门-15】Mybatis-基础操作-增改查操作
    1、章节回顾上一篇文章我们讲解了Mybatis的删除操作,本篇继续学习Mybatis的新增操作:根据员工表字段,新增员工表的数据,新增的字段有:用户名、员工姓名、性别、图像、职位、入职日期、归属部门。2、增删改查操作-新增操作员工表emp新增数据,对应的SQL语句:insertintoemp(username......
  • 61道MyBatis高频题整理(附答案背诵版)
    1、介绍下MyBatis?MyBatis是一个基于Java的持久层框架,它封装了底层的JDBC操作,大大简化了数据库操作的复杂性。MyBatis的主要特点包括:SQL语句与Java代码的分离:MyBatis允许你直接在XML文件中编写SQL语句,这样可以将SQL语句从Java代码中分离出来,使得代码更加清晰,易于维护。强大......
  • mybatis获取insert操作自增主键值
    大家好,我是joker,希望你快乐。在日常使用mybatis时,经常会遇到数据库表的主键是自增id的情况。数据库的表结构又设计成主子表的情况,在插入主表数据后,为了维护主子表关系,通常需要获取插入主表中的自增id。代码示例mapper.xml<insertid="insertCity"parameterType="City"useG......
  • 最近在使用SpringBoot整合MyBatis-Plus时出现的问题
    版本信息:IDEA2022、jdk17、maven3.8.6、SpringBoot3+MyBatis-Plus依赖版本信息:<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3</version&g......
  • C# 读写 Excel 四种方案(OpenXml、NPOI、EPPlus、Spire.Office)
    C#读写Excel四种方案(OpenXml、NPOI、EPPlus、Spire.Office)翔星有10年+工作经验,高级软件工程师,可以解决各种问题​关注 你经常看TA的内容前言在项目中需要使用C#读写Excel,每天定时将数据输出到Excel表格中。在参考了很多的方案后,找到了4......
  • MyBatis方法入参打@Param后,xml中的取值方式
    /***分页查询对账结果**@parampage*@paramrequestBO*@return*/Page<ReconcileDetailResultPageBO>pageDetailSettleDataAndResult(IPage<ReconcileDetailResultPageBO>page,@Param("requestBO")ReconcileDetailResultPageRequestBOrequestBO)......
  • JavaWeb - Day09 - Mybatis - 基础操作、XML映射文件、动态SQL
    01.Mybatis-基础操作-环境准备需求需求说明:根据资料中提供的《tlias智能学习辅助系统》页面原型及需求,完成员工管理的需求开发。通过分析以上的页面原型和需求,我们确定了功能列表:查询根据主键ID查询条件查询新增更新删除根据主键ID删除根据......
  • Null-Aware 问题对 TiDB 优化器的影响(OOM)
    作者:jansu-dev第一章背景介绍笛卡尔积在TiDB执行计划中经常出现,该类执行计划又极其消耗数据库资源,容易引发执行速度慢,消耗大量内存,甚至引发OOM的情况。**本文将着重研究因TiDB对NULLAware的不完全支持,导致的笛卡尔积情况,期望对后续数据库问题分析提供参考,及自己更......
  • 数据持久层框架mybatis学习:使用mybatis+SpringBoot完成增删改查
    目录一、MyBatis的应用配置二、使用mybatis+SpringBoot完成增删改查2.1代码实现2.2增删改查接口调用一、MyBatis的应用配置依赖pom.xml注意:版本号的依赖冲突问题<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xm......
  • mybatis-plus
    Mybatis-plus简介|MyBatis-Plus(baomidou.com)特性损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作强大的CRUD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求支持Lambda......