当前使用版本(必填,否则不予处理)

3.3.0

该问题是如何引起的?(确定最新版也有问题再提!!!)

自动填充updateTime时候,第一次update可以成功填充,当二次修改时,updateTime不为空,此时不会自动填充新的updateTime.仍为第一次更新的时间.

重现步骤(如果有就写完整)

@Override
public void updateFill(MetaObject metaObject) {
    this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date(System.currentTimeMillis()));

// 已过时,请使用this.strictUpdateFill // this.setFieldValByName("updateTime", new Date(System.currentTimeMillis()), metaObject); // this.setFieldValByName("updateUserId",SecUtils.getCurrentUser().getId(), metaObject); }

/**
 * 修改时间
 */
@TableField(value = "update_time", fill = FieldFill.UPDATE)
protected Date updateTime;

新增一条数据.自动填充createTime成功.updateTime为null.对这条数据进行修改,自动填充updateTime成功.再次修改此条数据.updateTime没有自动填充.

报错信息

无报错

Comment From: miemieYaho

点开调用链查看,默认规则就是有值不填充

Comment From: Wsr-7

点开调用链查看,默认规则就是有值不填充

谢谢你的解答!.但我发现显示已过时的方法:this.setFieldValByName却可以成功多次对update操作有值填充.请教一下,若我使用3.3.0以上版本,且需要做到有值也继续填充应如何设置呢?

Comment From: miemieYaho

重写 #strictFillStrategy