激情久久久_欧美视频区_成人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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 黄色毛片一级 | 久草在线免费资源站 | 成人在线视频在线观看 | 成人超碰 | 成人福利视频 | 国产毛片视频 | 欧美成人一级片 | 国产日韩一区二区三区在线观看 | 在线中文字幕观看 | 成人在线观看免费观看 | 日韩精品中文字幕在线播放 | a视频在线免费观看 | 伦一区二区三区中文字幕v亚洲 | 成人在线精品视频 | 国产乱淫av片免费网站 | 视频一区二区国产 | 视频一区二区中文字幕 | 在线天堂中文在线资源网 | 成人免费一区二区三区视频网站 | 精品成人av一区二区在线播放 | av免费在线观看国产 | 欧美77| 久久久久.com | 激情国产视频 | 免费a级黄色片 | 99re66热这里只有精品8 | 欧美 日韩 中文 | 久久久久久中文字幕 | 五月婷婷第四色 | 欧美成人一区二区三区 | 久久777国产线看观看精品 | 成人免费观看av | 91av亚洲| 91久久国产露脸精品国产护士 | 成人国产高清 | 日韩欧美中文字幕视频 | 在线播放亚洲 | 久久久久久片 | 国产精品一区二区x88av | 久久成人在线观看 | 久草在线观看福利 |