公共字段的填充使用mybatisplus时,我们每一个实体类中都有一些公共字段,每次都是设置公共字段的值,浪费资源和时间,所以这里可以设置一下公共字段的填充

使用mybatisplus时,我们每一个实体类中都有一些公共字段,而且这个公共字段都是非空的,在执行更新或者新增的时候,每次都设置公共字段的值,浪费资源和时间,所以这里可以设置一下公共字段的填充(就是公共字段都设置相同的值,这里只需要设置一次就可以了,不需要重复设置)。

设置步骤:

第一步:在实体类的公共属性上使用@TableField注解,注解里面指定是插入时填充还是更新时填充(每一个实体类上的想要实现公共字段填充,都需要使用这个注解)

    @TableField(fill = FieldFill.INSERT) //这个file后面填充的策略 ,插入时填充
    private Date createTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)  //插入和更新时填充
    private Date updateTime;

    @TableField(fill = FieldFill.INSERT)     //插入时填充
    private Long createUser;

    @TableField(fill = FieldFill.INSERT_UPDATE)  //插入和更新时填充
    private Long updateUser;

第二步:自定义元数据对象处理器(编写一个类实现MetaObjectHander),并实现里面的insertFill()方法和updtaFill()方法。在这个方法,通过metaObject,setValue来设置我们公共填充的字段,以及填充的值

/**
 * 自定义元数据对象处理器
 */
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    //插入的时候,执行的
    @Override
    public void insertFill(MetaObject metaObject) {
    //获取登录用户的id
        Long currentId = BaseContext.getCurrentId();

        metaObject.setValue("createTime",new Date());
        metaObject.setValue("updateTime",new Date());
        metaObject.setValue("createUser",currentId);
        metaObject.setValue("updateUser",currentId);

    }
    //更新的时候执行的
    @Override
    public void updateFill(MetaObject metaObject) {
        Long currentId = BaseContext.getCurrentId();
        metaObject.setValue("updateTime",new Date());
        metaObject.setValue("updateUser",currentId);
    }
}

 上面的setValue里面的第一个参数就是我们实体类的属性,第二个参数就是我们设置的值,经过上述两步,就可以实现公共字段的填充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Agnoni

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值