場景:項目整合了mybatisplus,進(jìn)行update更新,前端傳值為空時,數(shù)據(jù)庫也進(jìn)行了更新
UpdateWrapper updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("shop_id", goodsInfo.getShopId());
updateWrapper.eq("goods_id", goodsInfo.getGoodsId());
//獲取修改之前的數(shù)據(jù)
Map oldValue = iShopGoodsService.getOneOfShopGoods(goodsInfo);
boolean update = iShopGoodsService.update(goodsInfo, updateWrapper);
Map newValue = iShopGoodsService.getOneOfShopGoods(goodsInfo);
//記錄操作日志
解決方案:
在實體類上使用@TableField注解
/**
* 是否限量商品 -1不限量商品,其他數(shù)值指定限量幾件
*/
@TableField(strategy = FieldStrategy.NOT_EMPTY)
private String limitGoods;
這樣,當(dāng)前端傳過來的limitGoods參數(shù)為null或者空字符串,mybatisplus的更新就會攔截此字符串的更新。
FieldStrategy的源碼中,一共有4種策略類型。
package com.baomidou.mybatisplus.annotation;
/**
* 字段策略枚舉類
*
* @author hubin
* @since 2016-09-09
*/
public enum FieldStrategy {
/**
* 忽略判斷
*/
IGNORED,
/**
* 非NULL判斷
*/
NOT_NULL,
/**
* 非空判斷
*/
NOT_EMPTY,
/**
* 默認(rèn)的,一般只用于注解里
* <p>1. 在全局里代表 NOT_NULL</p>
* <p>2. 在注解里代表 跟隨全局</p>
*/
DEFAULT
}

附上mybatis-plus官網(wǎng)鏈接地址:
https://baomidou.com/pages/223848/#fieldstrategy文章來源:http://www.zghlxwxcb.cn/news/detail-503467.html
有興趣的小伙伴可以點擊看看文章來源地址http://www.zghlxwxcb.cn/news/detail-503467.html
到了這里,關(guān)于MyBatis-Plus 更新(update)方法,屬性參數(shù)為空時進(jìn)行更新與不進(jìn)行更新的設(shè)置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!