天天看點

springboot使用mybatis-plus表單更新null值問題通用解決方案

使用mybatis-plus進行資料庫互動,預設開啟null不更新設定,在新增資料後,編輯頁面将字段值清除後(date類型,int類型,為避免預設值傳入,model全部使用包裝類型初始化為null)無法将null值更新至資料庫

通過UpdateWrapper的set方法強制字段為null值

定義基礎類BaseModel,增加屬性updateFieldList,model繼承此類

自定自定義注解UpdateRequestBody替代RequestBody

自定義HandlerMethodArgumentResolver對前台json至背景Model轉換的攔截,需要對List類型的Model集合進行支援,擷取前台送出json對應定義Model中有同名屬性的,進行加入打待更新字段清單updateFieldList

将自定義BaseModelMethodArgumentResolver 加入到配置中去

進行自定義UpdateWrapper構造

注:對标記TableField忽略注解的字段可以優化,反射可以應用初始化時掃描加入緩存進行優化

繼續閱讀