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

JPA save()方法將字段更新為null的解決方案

 更新時(shí)間:2020年01月21日 09:24:37   作者:King-D  
這篇文章主要介紹了JPA save()方法將字段更新為null的解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了JPA save()方法將字段更新為null的解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

今天在開發(fā)上碰到一個(gè)問題,在做頁面展示的時(shí)候傳給前端十個(gè)字段,前端修改了其中3個(gè)的值,所以只傳了3個(gè)值給后端,其余字段默認(rèn)為null,更新后其他7個(gè)字段在全部變?yōu)榱丝罩怠?/p>

在前端沒法全量回傳所有屬性的前提下,由后端來處理這類問題。
解決方法:

1.寫一個(gè)工具方法(UpdateUtil) 用來篩選出所有的空值字段

2.更新時(shí)先通過id搜索原始對(duì)象,通過findone()等都可以

3.將前端傳來的不為空參數(shù)(也即是要修改值)copy覆蓋原始對(duì)象屬性值,通過BeanUtils.copyNullProperties(Object source, Object target)

以下是工具方法:

/**
 * 更新用工具類(忽略為null的字段)
 */
public class UpdateUtil {

  /**
   * 所有為空值的屬性都不copy
   *
   * @param source
   * @param target
   */
  public static void copyNullProperties(Object source, Object target) {
    BeanUtils.copyProperties(source, target, getNullField(source));
  }

  /**
   * 獲取屬性中為空的字段
   *
   * @param target
   * @return
   */
  private static String[] getNullField(Object target) {
    BeanWrapper beanWrapper = new BeanWrapperImpl(target);
    PropertyDescriptor[] propertyDescriptors = beanWrapper.getPropertyDescriptors();
    Set<String> notNullFieldSet = new HashSet<>();
    if (propertyDescriptors.length > 0) {
      for (PropertyDescriptor p : propertyDescriptors) {
        String name = p.getName();
        Object value = beanWrapper.getPropertyValue(name);
        if (Objects.isNull(value)) {
          notNullFieldSet.add(name);
        }
      }
    }
    String[] notNullField = new String[notNullFieldSet.size()];
    return notNullFieldSet.toArray(notNullField);
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mybatis批量插入并返回主鍵id的方法

    Mybatis批量插入并返回主鍵id的方法

    本文主要介紹了Mybatis批量插入并返回主鍵id的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Java MyBatis框架環(huán)境搭建詳解

    Java MyBatis框架環(huán)境搭建詳解

    MyBatis本是apache的一個(gè)開源項(xiàng)目iBatis,MyBatis環(huán)境的搭建有點(diǎn)麻煩,本章帶你了解搭建過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值
    2022-08-08
  • 淺談java對(duì)象轉(zhuǎn)json,數(shù)字精確出現(xiàn)丟失問題

    淺談java對(duì)象轉(zhuǎn)json,數(shù)字精確出現(xiàn)丟失問題

    下面小編就為大家?guī)硪黄獪\談java對(duì)象轉(zhuǎn)json, 數(shù)字精確出現(xiàn)丟失問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例

    Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例

    這篇文章主要介紹了Java網(wǎng)絡(luò)編程之URL+URLconnection使用方法示例,還是比較不錯(cuò)的,這里分享給大家,供需要的朋友參考。
    2017-11-11
  • 簡(jiǎn)單實(shí)現(xiàn)java數(shù)獨(dú)游戲

    簡(jiǎn)單實(shí)現(xiàn)java數(shù)獨(dú)游戲

    這篇文章主要教大家如何簡(jiǎn)單實(shí)現(xiàn)java數(shù)獨(dú)游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java正則表達(dá)式的替換和分組功能

    Java正則表達(dá)式的替換和分組功能

    這篇文章主要給大家介紹了關(guān)于Java正則表達(dá)式的替換和分組功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 解析JavaSe的內(nèi)部類

    解析JavaSe的內(nèi)部類

    這篇文章主要為大家詳細(xì)介紹了JavaSe的內(nèi)部類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Maven依賴作用域和依賴傳遞的使用

    Maven依賴作用域和依賴傳遞的使用

    本文主要介紹了Maven依賴作用域和依賴傳遞的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • SpringBoot使用@valid進(jìn)行參數(shù)校驗(yàn)的流程步驟

    SpringBoot使用@valid進(jìn)行參數(shù)校驗(yàn)的流程步驟

    SpringBoot 提供了一種方便的方式來進(jìn)行參數(shù)校驗(yàn):使用 Hibernate Validator,Spring Boot 提供了一種方便的方式來進(jìn)行參數(shù)校驗(yàn):使用 Hibernate Validator,所以本文給大家介紹了SpringBoot使用@valid進(jìn)行參數(shù)校驗(yàn)的流程步驟,需要的朋友可以參考下
    2023-09-09
  • Spring?Service功能作用詳細(xì)講解

    Spring?Service功能作用詳細(xì)講解

    service層測(cè)試較簡(jiǎn)單,目前大多數(shù)測(cè)試主要是針對(duì)public方法進(jìn)行的。依據(jù)測(cè)試方法劃分,可以分為兩種:基于mock的隔離測(cè)試和基于dbunit的普通測(cè)試
    2022-12-12

最新評(píng)論

三门峡市| 公安县| 张北县| 濉溪县| 监利县| 新化县| 新化县| 康平县| 承德县| 澎湖县| 东乡族自治县| 凤山县| 云龙县| 察雅县| 张家界市| 上栗县| 肥乡县| 石棉县| 永清县| 城固县| 汝阳县| 山阳县| 德阳市| 徐州市| 甘孜县| 河津市| 黎平县| 崇礼县| 常州市| 休宁县| 江达县| 常宁市| 鹰潭市| 南平市| 牡丹江市| 民权县| 广丰县| 元谋县| 平昌县| 涿鹿县| 兰溪市|