确认

  • [X] 我的版本是最新版本, 我的版本号与 version 相同, 并且项目里无依赖冲突
  • [X] 我已经在 issue 中搜索过, 确认问题没有被提出过
  • [X] 我已经修改标题, 将标题中的 描述 替换为遇到的问题

功能改进

逻辑删除时,remove/removeByIds等方法无法进入MetaObjectHandler的子类,修改更新时间(updateByIds等方法是可以正常修改的)

Spring全局配置:

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #显示sql
  global-config:
    db-config:
      logic-delete-field: isDelete #全局逻辑删除字段值

java代码:

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    @Override
    public void insertFill(MetaObject metaObject) {
        Date currentDate = new Date();
        if (metaObject.hasGetter("createTime")) {
            setFieldValByName("createTime", currentDate, metaObject);
        }
        if (metaObject.hasGetter("updateTime")) {
            setFieldValByName("updateTime", currentDate, metaObject);
        }
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        if (metaObject.hasGetter("updateTime")) {
            setFieldValByName("updateTime", new Date(), metaObject);
        }
    }

}

removeByIds(offerBillMemberIds); remove等框架内的其他删除方法都试过了,均无法修改更新时间

执行sql: Preparing: UPDATE tb_offer_bill_member SET is_delete = '1' WHERE tb_offer_bill_member.tenant_id = 1683773400876826625 AND offer_bill_member_id IN (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) AND is_delete = '0'

参考资料

No response

Comment From: miemieYaho

什么版本?

Comment From: coding-weilong

什么版本?

3.3.0,目前系统升级MyBatisPlus新版本难度较大,影响点很多,该版本是否有解决方案?

Comment From: miemieYaho

不知道