0
点赞
收藏
分享

微信扫一扫

MyBatis-Plus实体类字段自动填充

夏木之下 2022-05-01 阅读 103

公共实体类:

创建一个BasePojo类,存放各个实体类的公共字段。添加注解@TableFiled

@Data
public abstract class BasePojo implements Serializable{
    @TableFiled(fill=FiledFill.INSERT)
    private Date created; //数据库执行INSERT操作时为该字段赋值
    @TableFiled(fill=FieldFill.INSERT_UPDATED)
    private Date update;  //数据库执行INSERT或UPDATE操作时为该字段赋值
}

自动填充功能实现类:

创建MyMetaObjectHandler类,实现MetaObjectHandler接口中的insertFill(插入操作)和updateFill(修改操作)方法

public class MyMetaObjectHandler implements MetaObjectHandler {
    /**
     * 插入操作,自动填充
     *
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        Object created = getFileByName("created", metaObject);
        if(Objects.isNull(created)){
            setFiledValByName("created", new Date(), metaObject);
        }
        Object updated = getFiledByName("updated",metaObject);
        if(Objects.isNull(updated)){
            setFiledValByName("updated", new Date(), metaObject);
        }
    }
       
    /**
     * 修改操作,自动填充
     *
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        setFiledValByName("updated", new Date(), metaObject);
    }
}

 

举报

相关推荐

0 条评论