mybatilsplus 自定义填充属性--MetaObjectHandler;生成entity 自动添加fill = FieldFill.INSERT_UPDATE

本文介绍了在使用 MyBatisPlus 的过程中,如何实现字段自动填充创建时间和更新时间的功能。作者遇到的问题是需要在实体类上手动添加注解,为了避免忘记添加注解导致的问题,作者探讨了多种解决方案,包括使用父类、扩展框架以及修改模板。最终,作者选择了修改模板的方式,通过导入相关包避免了手动添加注解的需要。
摘要由CSDN通过智能技术生成

根据官网文档https://baomidou.com/guide/auto-fill-metainfo.html 我这边没测试成功,我用了这样的方式

@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {

        log.info("start insert fill ....");
        this.setFieldValByName("cjsj",new Date(),metaObject);

    }

    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("gxsj",new Date(),metaObject);
    }
}

这样写是没问题的。

 

本以为这样写就行了,但是需要在实体类上手动显示加上注解:

    @ApiModelProperty(value = "创建时间")
    @TableField(value = "CJSJ",fill = FieldFill.INSERT)
    private Date cjsj;

 

这就无语了,这样搞,,就会出现一个问题啊,,如果别人重新生成这个实体,忘记加这个注解了,怎么搞?

解决方案有多种,我一开始计划想写个父类不就行了吗,生成模板时指定父类,,这样应该也可以,,我没测试;

我在想开源应该给扩展了吧,,我找找,我跟踪源码,没发现有这个东西的扩展,建议后期支持扩展;ok,那就重写类也行,我没走这个路,我走的是直接修改模板;

这个模板拿出来,改下即可,,不用重写他们的类就可以了;

在这里加一下就可以了

 

在上面导入下包

import com.baomidou.mybatisplus.annotation.*;

 

这样就ok了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值