最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Mybatis-Plus更新方法不更新NULL字段的問題

 更新時間:2023年12月08日 09:28:59   作者:@會飛的羊  
這篇文章主要介紹了解決Mybatis-Plus更新方法不更新NULL字段的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Mybatis-Plus更新方法不更新NULL字段

使用Mybatis-Plus中提供的updateById方法時遇到的一些問題,分享出來,避免大家踩坑,想將查詢結(jié)果中某個字段更新為null,但結(jié)果該字段更新失敗,執(zhí)行更新方法后還是查詢的原來的結(jié)果,沒有變。

查詢Mybatis-Plus的FieldStrategy:

由圖中可以看到,更新策略支持5種類型:默認(rèn)是追隨全局配置globalConfig,

mybatis-plus:
  ......
  configuration:
    ......
  global-config:
    ......
    db-config:
      ......

如果沒有進(jìn)行全局配置的話,會采用NOT_NULL的更新策略(sql上會加上不為NULL的判斷)。

解決辦法

1.設(shè)置全局的field-strategy(默認(rèn)追隨全局配置)

yml文件配置如下:

mybatis-plus:
    global-config:
    db-config:
      update-strategy: ignored

這樣做是全局性配置,會對所有的字段都忽略判斷,如果一些字段不想要修改,但是傳值的時候沒有傳遞過來,就會被更新為null,可能會影響其他業(yè)務(wù)數(shù)據(jù)的正確性。

2.在屬性上添加單獨(dú)的更新策略

/**
 * 申報組織
 */
@ApiModelProperty("申報組織")
@ExcelProperty(value = "申報組織", converter = DeptConverter.class)
@TableField(updateStrategy = FieldStrategy.IGNORED)
private String reportingOrganization;

在更新代碼中,我們直接使用mybatis-plus中的updateById方法便可以更新成功

3.使用UpdateWrapper方式更新

在mybatis-plus中,除了updateById方法,還提供了一個update方法

// 根據(jù) whereWrapper 條件,更新記錄
boolean update(T updateEntity, Wrapper<T> whereWrapper);

直接使用update方法也可以將字段設(shè)置為null,代碼如下:

 /**
  * update更新字段為null
  * @param id
   * @return
   **/
      @Override
      public boolean updatePatentById(Integer id) {
     Patent patent = 			Optional.ofNullable(patentMapper.selectById(id)).orElseThrow(RuntimeException::new);
     LambdaUpdateWrapper<Patent> Wrapper = new LambdaUpdateWrapper<>();
     Wrapper.set(Patent::getCreateTime,null);
     Wrapper.set(Patent::getCreateUser,123);
    Wrapper.eq(Patent::getId,patent.getId());
    int i = patentMapper.update(patent, Wrapper);
    return i==1;
     }

這種方式對其他方法沒有影響,不需要修改全局配置,也不需要在字段上單獨(dú)加注解,推薦使用該方式。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

贵德县| 二连浩特市| 长丰县| 弥渡县| 油尖旺区| 梁山县| 民丰县| 繁峙县| 新竹市| 凭祥市| 邵阳县| 克什克腾旗| 沂源县| 奉贤区| 冀州市| 永顺县| 靖江市| 灵台县| 广水市| 青岛市| 潜山县| 页游| 宁乡县| 康乐县| 筠连县| 电白县| 霍林郭勒市| 长武县| 依安县| 景德镇市| 永康市| 封开县| 秦安县| 梓潼县| 湖北省| 万全县| 夹江县| 娱乐| 凉山| 天津市| 无为县|