mybatis-puls的update方法设置时间为null不生效问题

作者: adm 分类: java,mybatis 发布时间: 2022-09-01
@ApiModelProperty(value = "开始时间")
@TableField(value = "START_TIME", fill = FieldFill.INSERT_UPDATE)
private Date startTime;
 
@ApiModelProperty(value = "结束时间")
@TableField(value = "END_TIME", fill = FieldFill.INSERT_UPDATE)
private Date endTime;
@TableField(value = "END_TIME", fill = FieldFill.INSERT_UPDATE)

fill = FieldFill.INSERT_UPDATE 将这个参数由默认值改为这个,这样修改之后,
saveOrupdate方法如果接受参数对象里没有这个属性,将会把时间置空而不是保留原值不变,如果想要做到保留不变
需要自己实现填充规则,否则不传值时直接更新为null,

如果是mybatis里则使用

@TableField(updateStrategy = FieldStrategy.IGNORED)

备注:@TableField(updateStrategy = FieldStrategy.IGNORED) 更新不要传入实体,如果传入实体调用方式里没有传该字段,该字段的内容会被清空,
其他字段不被清空的可使用以下方法

UpdateWrapper updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id",id);
updateWrapper.set("status",status);
boolean result = this.update(updateWrapper);

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!