mybatis plus 中 使用 updateById更新字段为null 不更新问题 @TableField(updateStrategy = FieldStrategy.NOT_NULL)

mybatis plus 中 使用 updateById或updateBatchById 更新字段为null 不更新问题

解决方法为:
在该字段上加上@TableField(strategy = FieldStrategy.IGNORED)注解,就会忽略为空的判断,将该字段设置为null也会更新表中的数据。
在这里插入图片描述
意义如下:
IGNORED,忽略判断

DEFAULT, 默认

NOT_EMPTY, 非空判断,为null,为空串的忽略,就是如果设置值为null,“”,不会更新数据库

NOT_NULL, 非NULL判断,忽略null的字段,不忽略""。

这是我的实体类,请通过实体类帮我写一个通用查询方法。当传入的实体类中的变量null时,表示作为条件查询。同时sql的编写采用mybatis-plus的兰姆达表达式: @Data @TableName("biz_base_device") public class BizBaseDeviceEntity implements Asset{ @TableId(value ="id" ,type = IdType.AUTO ) @JSONField(name = "id") private Integer id; @TableField(value = "device_name" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "deviceName") private String deviceName; @TableField(value = "kks" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "kks") private String kks; @TableField(value = "device_type" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "deviceType") private String deviceType; @TableField(value = "device_level" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "deviceLevel") private String deviceLevel; @TableField(value = "device_major" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "deviceMajor") private String deviceMajor; @TableField(value = "device_status" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "deviceStatus") private Integer deviceStatus; @TableField(value = "manufacturer" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "manufacturer") private String manufacturer; @TableField(value = "specifications" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "specifications") private String specifications; @TableField(value = "made_time" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "madeTime") private String madeTime; @TableField(value = "install_time" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "installTime") private String installTime; @TableField(value = "last_run_time" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "lastRunTime") private String lastRunTime; @TableField(value = "last_stop_time" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "lastStopTime") private String lastStopTime; @TableField(value = "last_maintenance_time" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "lastMaintenanceTime") private String lastMaintenanceTime; @TableField(value = "mtbf" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "mtbf") private Double mtbf; @TableField(value = "func_description" , updateStrategy = FieldStrategy.IGNORED) @JSONField(name = "funcDescription") private String funcDescription; @TableField("sys_id") @JSONField(name = "sysId") private Integer sysId; @TableField("purchase_time") @JSONField(name = "purchaseTime") private String purchaseTime; @TableField("asset_number") @JSONField(name = "assetNumber") private String assetNumber; @TableField("purchase_channels") @JSONField(name = "purchaseChannels") private String purchaseChannels; @TableField(fill = FieldFill.INSERT, value = "created_at") @JSONField(name = "createdAt") private Date createdAt; @TableField(fill = FieldFill.INSERT_UPDATE, value = "updated_at") @JSONField(name = "updatedAt") private Date updatedAt; @TableField("deleted_at") @JSONField(name = "deletedAt") private Date deletedAt; @TableField(value = "f_tenant_id",fill = FieldFill.INSERT_UPDATE) @JSONField(name = "tenantId") private String tenantId; @TableField("f_flow_id") @JSONField(name = "flowId") private String flowId; @TableField("f_flow_task_id") @JSONField(name = "flowTaskId") private String flowTaskId; // 联表参数 @TableField(exist = false) @JSONField(name = "sysName") private String sysName; @TableField(exist = false) @JSONField(name = "deviceTypeName") private String deviceTypeName; @TableField(exist = false) @JSONField(name = "deviceMajorName") private String deviceMajorName; @TableField(exist = false) @JSONField(name = "deviceLevelName") private String deviceLevelName; @Override public Integer getParentId() { return this.getSysId(); } @Override public AssetType getType() { return AssetType.DEVICE; } /** * @return */ @Override public String getTableName() { return getKks(); } }
09-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值