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

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

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

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

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

查詢Mybatis-Plus的FieldStrategy:

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

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

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

解決辦法

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

yml文件配置如下:

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

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

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

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

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

3.使用UpdateWrapper方式更新

在mybatis-plus中,除了updateById方法,還提供了一個(gè)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é)

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

相關(guān)文章

最新評論

天全县| 张家港市| 江川县| 保山市| 丰镇市| 临朐县| 平南县| 扶余县| 阿拉善右旗| 蓝田县| 昭觉县| 中宁县| 高州市| 伊吾县| 宜州市| 佛教| 莲花县| 奉化市| 乌兰县| 东海县| 礼泉县| 简阳市| 绩溪县| 山阳县| 临武县| 墨江| 怀仁县| 宁河县| 图木舒克市| 彭水| 新晃| 托克托县| 靖边县| 柞水县| 建昌县| 武邑县| 温泉县| 增城市| 汉寿县| 曲周县| 肇东市|