mybatisplus 强制制空 空覆盖原来的字符串

@ApiModelProperty(value ="证件照片url")
@TableField(value = "id_photo_url",fill = FieldFill.UPDATE)
private String idPhotoUrl;

  

方法一

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("base_party_member")
@ApiModel(value="BasePartyMember对象", description="党员管理表")
public class BasePartyMember extends Model<BasePartyMember> {private static final long serialVersionUID=1L;@ApiModelProperty(value = "党员id")@TableId(value = "id", type = IdType.AUTO)private Long id;@ApiModelProperty(value = "服务范围 可关联多个房屋")@TableField(fill = FieldFill.UPDATE)//@TableField(value = "service_area_ids",fill = FieldFill.UPDATE)//@TableField(value = "service_area_ids", updateStrategy = FieldStrategy.IGNORED,jdbcType = VARCHAR )private String serviceAreaIds;@ApiModelProperty(value = "是否删除,Y-删除,N-未删除")@TableField("is_deleted")private String isDeleted;@ApiModelProperty(value = "创建时间")@TableField("create_time")private Date createTime;@ApiModelProperty(value = "创建人")@TableField("creator")private Long creator;@ApiModelProperty(value = "最后修改人")@TableField("operator")private Long operator;@ApiModelProperty(value = "最后修改时间")@TableField("update_time")private Date updateTime;@Overrideprotected Serializable pkVal() {return this.id;}}

 

count = basePartyMemberMapper.updateById(newPartyMember);
if(StringUtils.isBlank(newPartyMember.getServiceAreaIds())){//也可以参考下面这种写法basePartyMemberMapper.update(null,Wrappers.<BasePartyMember>lambdaUpdate().eq(BasePartyMember::getId,newPartyMember.getId()).set(BasePartyMember::getServiceAreaIds, ""));
}

 

 

2021-05-08 11:04:22.576 ERROR 1 [http-nio-18093-exec-3] c.w.s.c.c.ExceptionHandleConfiguration   : [500]_
### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'service_area_ids' cannot be null
### The error may exist in com/wochanye/ssc/party/mapper/BasePartyMemberMapper.java (best guess)
### The error may involve com.wochanye.ssc.party.mapper.BasePartyMemberMapper.update-Inline
### The error occurred while setting parameters
### SQL: UPDATE base_party_member  SET service_area_ids=?      WHERE (id = ?)
### Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'service_area_ids' cannot be null
; Column 'service_area_ids' cannot be null; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column 'service_area_ids' cannot be null
org.springframework.dao.DataIntegrityViolationException: 
### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'service_area_ids' cannot be null
### The error may exist in com/wochanye/ssc/party/mapper/BasePartyMemberMapper.java (best guess)
### The error may involve com.wochanye.ssc.party.mapper.BasePartyMemberMapper.update-Inline
### The error occurred while setting parameters
### SQL: UPDATE base_party_member  SET service_area_ids=?      WHERE (id = ?)
### Cause: java.sql.SQLIntegrityConstraintViolationException: Column 'service_area_ids' cannot be null
; Column 'service_area_ids' cannot be null; nested exception is java.sql.SQLIntegrityConstraintViolationException: Column 'service_area_ids' cannot be null
        at org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:87)

 

 

方法二

https://blog.csdn.net/qianlingo/article/details/105120219


@Data
@TableName("shop_item")
public class ShopItem implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
 
    /**
     * 编号
     */
    @TableId(type= IdType.INPUT)
    private String id;
 
    /**
     * 物品名称
     */
    private String itemName;
 
    /**
     * 物品价格
     */
    @TableField(fill = FieldFill.UPDATE)
    private Double itemPrice;

 
    /**
    *    添加人编号
    */
    private String addUserId;
 
    /**
    *    添加时间
    */
    private Date addTime;
 
}
我们在itemPrice属性的顶上加上@TableField(fill = FieldFill.UPDATE)后,在执行一遍修改方法看看!

update 
    shop_item 
set 
    item_name = 'iPhone 8 Plus',
 
    item_price = ''
where 
id = '361E8C48-6699-4ED5-83C4-7C9D98747C2C';
bingo,成功!
————————————————
版权声明:本文为CSDN博主「qianlingo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qianlingo/article/details/105120219

 

 

 

方法三

https://blog.csdn.net/l848168/article/details/92829930

 

field-strategy字段更新插入策略属性说明:
IGNORED(0): "忽略判断", 所有字段都更新和插入 
NOT_NULL(1): "非 NULL 判断", 只更新和插入非NULL值  
NOT_EMPTY(2): "非空判断", 只更新和插入非NULL值且非空字符串     
DEFAULT:默认NOT_NULL 

 

 

方法五

https://www.cnblogs.com/wuxixin/p/13573624.html

最近在工作的时候遇到使用mybatis-plus框架遇到一个无法更新空字符串和null的问题,看了很多博客文章,都没有解决掉,在此记录一下自己解决方式

xxxx.updateById(user)

一般都是调用 updateById()这个方法导致无法把null或者空字符串更新到数据库中的。

通过查看mybatis-plus官方的api文档也记录了对应的解决方法,一共有三种解决的方法

插入或更新的字段有 空字符串 或者 null

第一种方式,对自己的系统影响有点大,不是很适合,果断放弃了,没有使用

第二种方式,是实体类的需要传入null或者是空字符的属性中调整验证注解,但是只加 strategy = FieldStrategy.IGNORED 是不行的,会报错,是因为没有指定该字段的jdbcType的类型,加上就可以解决掉

 

 

1 @TableField(strategy = FieldStrategy.IGNORED,el = "relationAccId,jdbcType=VARCHAR")
2 private String relationAccId;

 

第三种方式,mybatis-plus的版本必须3.x以上才可以用,使用UpdateWrapper来更新

复制代码

//updateAllColumnById(entity) // 全部字段更新: 3.0已经移除
mapper.update(new User().setName("mp").setAge(3),Wrappers.<User>lambdaUpdate().set(User::getEmail, null) //把email设置成null.eq(User::getId, 2)
);
//也可以参考下面这种写法
mapper.update(null,Wrappers.<User>lambdaUpdate().set(User::getAge, 3).set(User::getName, "mp").set(User::getEmail, null) //把email设置成null.eq(User::getId, 2)
);

复制代码

还是官方API靠谱,遇到问题,可以先到官方网址查查API,可能是个不错的选择!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软开源Visual Studio测试平台VSTest

IT之家1月21日消息 微软在MSDN博客上宣布&#xff0c;开源旗下Visual Studio测试平台VSTest。这一平台是具备高扩展性的单元测试执行框架&#xff0c;能够在不同的核心之间实现并行化&#xff0c;提供进程隔离&#xff0c;并能够整合进Visual Studio。 目前&#xff0c;VSTest能…

线程的状态与调度

当我们使用new关键字新建一个线程&#xff0c;这个时候线程就进入了新建状态&#xff08;New&#xff09;&#xff0c;也就是图中未启动状态&#xff1b;调用start方法启动线程&#xff0c;这个时候就进入了可运行状态&#xff0c;也就是就绪状态&#xff08;Runnable&#xff…

深入JVM系列(三)之类加载、类加载器、双亲委派机制与常见问题

转载自 深入JVM系列&#xff08;三&#xff09;之类加载、类加载器、双亲委派机制与常见问题 一&#xff0e;概述 定义&#xff1a;虚拟机把描述类的数据从Class文件加载到内存&#xff0c;并对数据进行校验、转换解析和初始化&#xff0c;最终形成可以被虚拟机直接使用的java…

Fabio 安装和简单使用

Fabio&#xff08;Go 语言&#xff09;&#xff1a;https://github.com/eBay/fabio Fabio 是一个快速、现代、zero-conf 负载均衡 HTTP(S) 路由器&#xff0c;用于部署 Consul 管理的微服务。 Fabio 由 eBay Classifieds Group 开发&#xff0c;用于处理 marktplaats.nl 和 kij…

计算密集型分布式内存存储和运算平台架构

1. 相关概念 1.1 内存数据库 关系型数据库处理永久、稳定的数据&#xff0c;内存数据库就是将其数据放在内存中&#xff0c;活动事务只与内存数据打交道&#xff0c;重新设计了体系结构并且在数据缓存、快速算法、并行操作方面也进行了相应的改进&#xff0c;所以数据处理速度比…

【深入Java虚拟机】之四:类加载机制

转载自 【深入Java虚拟机】之四&#xff1a;类加载机制 类加载过程 类从被加载到虚拟机内存中开始&#xff0c;到卸载出内存为止&#xff0c;它的整个生命周期包括&#xff1a;加载、验证、准备、解析、初始化、使用和卸载七个阶段。它们开始的顺序如下图所示&#xff1a; 其中…

违反ClassLoader双亲委派机制三部曲第二部——Tomcat类加载机制

转载自 违反ClassLoader双亲委派机制三部曲第二部——Tomcat类加载机制 前言&#xff1a; 本文是基于 ClassLoader双亲委派机制源码分析 了解过正统JDK类加载机制及其实现原理的基础上&#xff0c;进而分析这种思想如何应用到Tomcat这个web容器中&#xff0c;从源码的角度对 违…

红包的技术升级之旅

鸡年春节&#xff0c;红包再次成为年味儿最重要的催化剂。先是腾讯QQ钱包推出“LBSAR天降红包”等三种创新有趣的玩法&#xff0c;支付宝上线AR实景红包&#xff0c;微博亦推出视频红包等形式。虽然微信退出红包营销让人稍有意外&#xff0c;但用户对红包的热情仍未消减。 事实…

java中生成1000~10000之间的随机数

要生成在[min,max]之间的随机整数&#xff0c;可使用Random类进行相关运算&#xff1a; Random random new Random(); int s random.nextInt(max)%(max-min1) min; random.nextInt(max)表示生成[0,max]之间的随机数&#xff0c;然后对(max-min1)取模。 以生成[1000,10000]…

C# 7.0新功能

下面是对C#7.0 版本所有语言功能的描述。随着 Visual Studio “15” preview 4 的发布&#xff0c;大部分功能可以被更灵活的应用。现在正是时候将这些功能介绍给大家&#xff0c;你也可以借此让我们知道你的想法。 C#7.0 增加了很多新的功能&#xff0c;更专注于数据的消费&am…

MybatisPlus学习(四)条件构造器Wrapper方法详解

https://www.cnblogs.com/xianz666/p/13857733.html MybatisPlus学习&#xff08;四&#xff09;条件构造器Wrapper方法详解 文章目录 1、条件构造器2、QueryWrapper 2.1、eq、ne2.2、gt、ge、lt、le2.3、between、notBetween2.4、like、notLike、likeLeft、likeRight2.4、isN…

使用ueditor实现多图片上传案例

UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器&#xff0c;具有轻量、可定制、用户体验优秀等特点。开源基于BSD协议&#xff0c;所有源代码在协议允许范围内可自由修改和使用。百度UEditor的推出&#xff0c;可以帮助不少网站开发者在开发富文本编辑器所遇…

自定义ClassLoader和双亲委派机制

转载自 自定义ClassLoader和双亲委派机制 ClassLoader ClassLoad&#xff1a;类加载器&#xff08;class loader&#xff09;用来加载 Java 类到 Java 虚拟机中。Java 源程序&#xff08;.java 文件&#xff09;在经过 Java 编译器编译之后就被转换成 Java 字节代码&#xff0…

ASP.NET Core 1.0 开发记录

ASP.NET Core 1.0 更新比较快&#xff08;可能后面更新就不大了&#xff09;&#xff0c;阅读注意时间节点&#xff0c;这篇博文主要记录用 ASP.NET Core 1.0 开发简单应用项目的一些记录&#xff0c;以备查阅。 ASP.NET Core 1.0 相关 Nuget 程序包源&#xff1a;https://api.…

深入浅出ClassLoader

转载自 深入浅出ClassLoader 你真的了解ClassLoader吗&#xff1f; 这篇文章翻译自zeroturnaround.com的 Do You Really Get Classloaders? &#xff0c;融入和补充了笔者的一些实践、经验和样例。本文的例子比原文更加具有实际意义&#xff0c;文字内容也更充沛一些&#xf…

微软任命LinkedIn高级副总裁为首席技术官

Kevin Scott曾是LinkedIn工程方面的高级VP&#xff0c;被任命为微软CTO后&#xff0c;Scott将全面统筹微软战略规划&#xff0c;以主动的姿态推进公司间合作&#xff0c;以最大化微软在伙伴及客户间的影响力。据了解&#xff0c;该职位为新创职位&#xff0c;为微软公司级CTO&a…

jQuery 基础教程 (三)之jQuery的选择器

一、jQuery 选择器 &#xff08;1&#xff09;选择器是 jQuery 的根基, 在 jQuery 中, 对事件处理, 遍历 DOM 和 Ajax 操作都依赖于选择器 &#xff08;2&#xff09;jQuery 选择器的优点: 简洁的写法 $(#id) //documnet.getElementById(id); $(p) //documnet.getEl…

SQL Server 2014内存优化表的使用场景

最近一个朋友找到走起君&#xff0c;咨询走起君内存优化表如何做高可用的问题 大家知道&#xff0c;内存优化表是从SQL Server 2014开始引入&#xff0c;可能大家对内存优化表还是比较陌生&#xff0c;网上也鲜有内存优化表使用场景的文章 朋友公司做的业务是跟蜂鸟配送类似的配…

春节祝福提前到

2017 鸡 年 大 吉 HAPPY NEW YEAR 鸡年起算自二十四节气之立春&#xff0c;因为生肖年依附于干支纪年&#xff0c;而干支纪年又是干支历的纪年方法。历代官方历书&#xff08;即黄历&#xff09;皆如此。农历只是借用干支来纪年&#xff0c;和干支历是两种不同的历法&#xf…