国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 解決mybatisPlus 中的field-strategy配置失效問題

解決mybatisPlus 中的field-strategy配置失效問題

2021-08-03 10:08胡GaQue Java教程

這篇文章主要介紹了解決mybatisPlus 中的field-strategy配置失效問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

場景:

前端修改給后臺傳遞了幾個空字符串。后臺使用mybatisplus 作為dao層。結果發現空字符串也更新了,mybatisplus 的field-strategy設置為 2 非空;

解決思路:

查看mybatisplus 版本差異。發現field-strategy已經棄用,從3.1.2 后使用下面這幾個配置對非空進行判斷

insertstrategy

類型:com.baomidou.mybatisplus.annotation.fieldstrategy

默認值:not_null

字段驗證策略之 insert

說明:

在 insert 的時候的字段驗證策略 目前沒有默認值,等 {@link #fieldstrategy} 完全去除掉,會給個默認值 not_null 沒配則按 {@link #fieldstrategy} 為準

#updatestrategy

類型:com.baomidou.mybatisplus.annotation.fieldstrategy

默認值:not_null

字段驗證策略之 update

說明:

在 update 的時候的字段驗證策略 目前沒有默認值,等 {@link #fieldstrategy} 完全去除掉,會給個默認值 not_null 沒配則按 {@link #fieldstrategy} 為準

#selectstrategy(since 3.1.2)

類型:com.baomidou.mybatisplus.annotation.fieldstrategy

默認值:not_null

字段驗證策略之 select

說明:

在 select 的時候的字段驗證策略: wrapper 根據內部 entity 生成的 where 條件 目前沒有默認值,等 {@link #fieldstrategy} 完全去除掉,會給個默認值 not_null 沒配則按 {@link #fieldstrategy} 為準

補充:mybatisplus中的field-strategy(字段更新插入策略):null值插入和更新問題

mybatisplus中null值插入和更新問題

配置mybatisplus的項目中,默認進行了不是全量更新的策略:not_null。

即在利用updatewrapper更新時,會做null判斷,如果傳參數為null,就不會更新。

在實際項目需求中可能配置全局更新策略為:not_null,但是某些場景更新時需要插入這個null值進行更新。如何解決這個問題呢?

實際項目解決方法示例一

實際項目中,配置文件中配置全局字段策略為not_null。

解決mybatisPlus 中的field-strategy配置失效問題

需求:實際項目中,apply_teacher字段當它為null時需要把null值更新進去。

困難:因為全局字段策略為not_null,所以默認不會更新null值進去。

解決方法:

利用條件構造器當值為null時set為null。

代碼:

?
1
2
wrapper<stuapplyinfoentity> updatewrapper = new updatewrapper<>();
((updatewrapper) updatewrapper).set(saveapply.getapplyteacher() == null, "apply_teacher", null);

實際項目解決方法示例二

需求:state字段所有值都更新和插入。

困難:因為全局字段策略為not_null,所以默認不會更新null值進去。

解決方法:

在entity中設置state設置注解@tablefield(),配置fieldstrategy為ignored。意思是"忽略判斷",所有值都更新和插入。

代碼:

?
1
2
@tablefield(strategy = fieldstrategy.ignored, el = "state, jdbctype=varchar")
private string state;

field-strategy字段更新插入策略介紹

枚舉類fieldstrategy源碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public enum fieldstrategy {
 /**
  * 忽略判斷
  */
 ignored,
 /**
  * 非null判斷
  */
 not_null,
 /**
  * 非空判斷
  */
 not_empty,
 /**
  * 默認的,一般只用于注解里
  * <p>1. 在全局里代表 not_null</p>
  * <p>2. 在注解里代表 跟隨全局</p>
  */
 default
}

枚舉類字段簡介

ignored:“忽略判斷”,所有字段都更新和插入。

not_null:“非 null 判斷”,只更新和插入非null值。

not_empty:“非空判斷”, 只更新和插入非null值且非空字符串。

default: 默認的,一般只用于注解里。

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

原文鏈接:https://www.jianshu.com/p/aad7e0025f5a

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品一区中文字幕乱码 | 一级片在线观看 | 丁香婷婷综合激情五月色 | 美女操av| 亚洲精品1区 | 久久永久视频 | 亚洲天堂影院 | 精品伊人久久 | 精品成人久久 | 在线免费av观看 | 国产视频自拍一区 | 亚洲一区精品在线 | 成人网色 | 色综合视频网 | 久久中文免费 | 精品久久久久久 | 亚洲精品男人的天堂 | 欧美另类国产 | 中文字幕亚洲视频 | 一本久久久 | 国产视频久久 | av中文字幕在线 | 久久久久久久国产精品视频 | 成人av电影在线观看 | 欧美日韩在线播放 | 亚洲精品免费播放 | 精品视频成人 | 91精品啪啪 | 国产精品美女视频 | 香蕉成人啪国产精品视频综合网 | 天天综合视频网 | 精品av| 日韩一区中文字幕 | 九九热这里都是精品 | 91麻豆精品国产91久久久资源速度 | 综合视频一区 | 亚洲精品一区二区三区不 | 国产精品福利91 | 久久久极品| 久久综合九九 | 精品久久久久久久人人人人传媒 |