mybatis-puls的update方法设置时间为null不生效问题
@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) 更新不要传入实体,如果传入实体调用方式里没有传该字段,该字段的内容会被清空,
其他字段不被清空的可使用以下方法
UpdateWrapperupdateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id",id);
updateWrapper.set("status",status);
boolean result = this.update(updateWrapper);