日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

解決springjpa的局部更新字段問題

瀏覽:8日期:2023-07-24 13:07:18
問題描述:

使用springjpa更新數據時,有時候我們需要更新部分字段,對已有的內容保持不變,通常我們可以通過Spring提供的bean工具類BeanUtils來實現

解決方法:

BeanUtils復制對象,BeanUtils中的構造方法屬性中可以通過傳入更新時忽略的屬性值來實現選擇性復制原對象的字段。更新部分字段時,我們僅需要傳入復制后的字段即可。

解析和實現:

BeanUtils的構造方法:

具體更新部分字段的步驟:

查詢出待更新對象的原有信息

通過傳入的更新的象去復制產生一個新對象,其中新對象中為null的字段不需要更新。

執行更新操作,操作對象時步驟2得出的復制對象。

代碼如下:

public Result update(@RequestBody AppScene appScene, @PathVariable String id ){ AppScene target = appSceneService.findById(id); //數據庫查出待更新對象 BeanUtils.copyProperties(appScene,target,getNullPropertyNames(appScene)); //使用更新對象的非空值去覆蓋待更新對象 appSceneService.update(target ); //執行更新操作 return new Result(true,StatusCode.OK,'修改成功');}

其中涉及的getNullPropertyNames方法作為工具類存在,具體如下:

public static String[] getNullPropertyNames (Object source) { final BeanWrapper src = new BeanWrapperImpl(source); java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors(); Set<String> emptyNames = new HashSet<String>(); for(java.beans.PropertyDescriptor pd : pds) { Object srcValue = src.getPropertyValue(pd.getName()); if (srcValue == null) emptyNames.add(pd.getName()); } String[] result = new String[emptyNames.size()]; return emptyNames.toArray(result); }更新:

這是之前剛開始學習框架的時候遇到的問題,其實這個問題spring早就提供了對應的方法去解決,它提供了對應bean拷貝的方法BeanUtils.copyProperties,通過傳入不同的值決定是否要忽略非空屬性值的拷貝,現在已經沒有必要自己手寫了。

補充:Java Jpa選擇性更新、部分字段更新工具類

使用Jpa自帶的Save方法更新實體類時,會覆蓋數據庫中實體類原有內容。如果我們只想更新一部分字段或是選擇性的更新,就只能另辟蹊徑了。

這個工具類很好地彌補了這個不足,對于待更新實體類中有內容的字段會更新,為空的字段會采用原數據庫中內容,下面是工具類代碼(附使用方法)。

工具類代碼:

import org.springframework.beans.BeanWrapper;import org.springframework.beans.BeanWrapperImpl;import java.util.HashSet;import java.util.Set;/** * jpa 部分字段更新方法 */public class UpdateColumnUtil { public static String[] getNullPropertyNames(Object source) { final BeanWrapper src = new BeanWrapperImpl(source); java.beans.PropertyDescriptor[] pds = src.getPropertyDescriptors(); Set<String> emptyNames = new HashSet<>(); for (java.beans.PropertyDescriptor pd : pds) { Object srcValue = src.getPropertyValue(pd.getName()); if (srcValue == null) emptyNames.add(pd.getName()); } String[] result = new String[emptyNames.size()]; return emptyNames.toArray(result); }}使用方法:

//首先從數據庫查出待更新對象Customer target = customerService.findById(customer.getCustId());//使用更新對象的非空值去覆蓋待更新對象BeanUtils.copyProperties(customer, target, UpdateColumnUtil.getNullPropertyNames(customer));//執行更新操作save = customerService.save(target);

這樣一個映射就完成我們的需求了。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
视频一区在线播放| 国产高清亚洲| 啪啪国产精品| 亚洲第一区色| 日韩精品一区第一页| 亚洲精品一二三**| 国产精品v亚洲精品v日韩精品| 国产精品毛片久久久| 精品日韩一区| 亚洲91久久| 综合一区二区三区| 国产精选久久| sm久久捆绑调教精品一区| 国产网站在线| 日韩高清中文字幕一区二区| 免费日韩av片| 88久久精品| 国产在线看片免费视频在线观看| 亚洲福利久久| 日韩av黄色在线| 亚洲黄色免费av| 麻豆久久精品| 麻豆一区二区在线| 日韩视频久久| 日韩**一区毛片| 日韩三区免费| 日韩国产在线一| 日韩久久精品网| 免费在线观看视频一区| 国产伦理一区| 激情五月综合网| 国产极品一区| 日韩午夜高潮| 给我免费播放日韩视频| 丝袜美腿亚洲一区二区图片| 欧美激情91| 亚洲一区二区三区高清| 美女国产精品久久久| 欧美日韩中文一区二区| 日韩欧美久久| 久久婷婷av| 久久99久久久精品欧美| 亚洲精品电影| 国产精品久久久久久久免费观看| 夜夜嗨网站十八久久| 久久久久久久久成人| 丝袜美腿亚洲色图| 丝袜av一区| 精品国产一区二区三区av片| 免费观看久久久4p| 久久精品高清| 久久精品国产福利| 亚洲精品国产精品粉嫩| 99久久久国产精品美女| 久久国际精品| 久久亚洲风情| 久久精品国产68国产精品亚洲| 国产欧美日韩影院| 蜜臀av亚洲一区中文字幕| 国产白浆在线免费观看| 久久精品97| 亚洲欧洲免费| 国产精品视区| 99久久精品费精品国产| 成人午夜亚洲| 国产毛片精品| 久久精品超碰| 日韩精品社区| 爽好久久久欧美精品| 蜜桃精品视频| 国产视频网站一区二区三区| 蜜桃一区二区三区在线观看| 亚洲二区在线| 亚洲夜间福利| 不卡一二三区| 精品久久一区| 麻豆精品视频在线观看免费| 国产图片一区| 69堂免费精品视频在线播放| 日韩一区二区三免费高清在线观看 | 国产中文欧美日韩在线| 日本三级亚洲精品| 日本亚洲视频| 亚洲免费中文| 国产手机视频一区二区 | 亚洲一级黄色| 久久九九国产| 99精品视频精品精品视频| 国产在线看片免费视频在线观看| 国产在线不卡一区二区三区| 国产激情欧美| 成人国产综合| 国产精品蜜芽在线观看| 91偷拍一区二区三区精品| 国产一区二区三区黄网站| 精品资源在线| 国产精品久久久久蜜臀 | 福利欧美精品在线| 91日韩欧美| 成人羞羞在线观看网站| 91精品综合| 亚洲黄页一区| 国产亚洲精品久久久久婷婷瑜伽| 亚洲一区免费| 日韩avvvv在线播放| 欧美国产专区| 国产在线观看www| 99久久亚洲精品| 日韩亚洲国产欧美| 亚洲精品国产日韩| 国产丝袜一区| 国产精品三级| 不卡福利视频| 麻豆亚洲精品| 91欧美日韩在线| 国语精品一区| 欧美日韩四区| 国产一级成人av| 国产在线看片免费视频在线观看| 欧美在线观看视频一区| 日韩精品一级中文字幕精品视频免费观看 | 美女性感视频久久| 男人的天堂久久精品| 久久国产视频网| 桃色av一区二区| 99在线精品视频在线观看| 日本久久二区| 久久精品一区二区国产| 欧美成人高清| 青青草精品视频| 色在线视频观看| 亚洲精品少妇| 亚洲伊人av| 蜜臀91精品一区二区三区| 久久精品九色| 99在线精品免费视频九九视| 国产日韩三级| 婷婷激情久久| 欧美日韩一视频区二区| 久久久久国产精品一区二区| 亚洲精品在线国产| 亚洲风情在线资源| 亚洲色图国产| 日韩一区二区中文| 日韩欧美中文字幕电影| 999久久久91| 97久久超碰| 久久理论电影| 国产精品一区二区精品| 久久久久99| 国产精品丝袜在线播放| 99国产成+人+综合+亚洲欧美| 国产精品v亚洲精品v日韩精品| 日韩视频一区| 亚洲黄色网址| 国产高清精品二区| 一区二区电影| 成人羞羞在线观看网站| 日韩精品欧美成人高清一区二区| 日韩精品影视| 麻豆国产精品视频| 视频一区日韩精品| 欧美va天堂在线| 国产精品毛片久久| 欧美在线91| 美女久久网站| 999国产精品999久久久久久| 久久精品一本| 欧美精品三级在线| 国产视频一区欧美| 日韩精品不卡一区二区| 国产精品1luya在线播放| 蜜臀av性久久久久蜜臀aⅴ四虎| 超碰在线99| 国产精品第一国产精品| 亚洲色图综合| 丝瓜av网站精品一区二区| 激情久久五月| 成人片免费看| 国产网站在线| 精品久久福利| 国产日韩在线观看视频| 日本在线一区二区三区| 蜜桃av一区二区三区电影| 亚洲电影在线| 久久精品观看| 久久婷婷激情| 国产精品久久观看| 你懂的亚洲视频| 国产精品三级| 国产日韩免费| 日本不卡视频一二三区| 视频一区中文字幕国产| 久久高清免费观看| 狠狠色狠狠色综合日日tαg| 久久精品青草| 色婷婷久久久| 亚洲手机视频| 欧美日韩一二| 日韩亚洲精品在线|