zoukankan      html  css  js  c++  java
  • 记一次在MyBatis-Plus中 @TableField 自动填充中遇见的坑

    先放一张表生成策略对应的结果

    描述
    DEFAULT 默认不处理
    INSERT 插入时填充字段
    UPDATE 更新时填充字段
    INSERT_UPDATE 插入和更新时填充字段

    此处需要注意一下,如果MyBatisPlus中有一些公共字段例如修改时间,创建时间,乐观锁等等

    创建是采用INSERT方案

    修改时采用UPDATE

    在修改时注意,使用MyBatis-Plus的update方法,传入QueryWrapper或者直接传null

    用updateById会出现策略不生效的情况

    贴上实现生成策略接口的代码

    package com.mengxiangnongfu.project.configure.mybatisplus.tools;
    
    import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
    import com.mengxiangnongfu.project.util.TimeHelper;
    import org.apache.ibatis.reflection.MetaObject;
    import org.springframework.stereotype.Component;
    
    /**
     * 自动填充处理类
     * mybatis-plus 3.3版本以上 使用注解的方式
     * https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/89450006?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
     *
     * @author Yang
     * @version 1.0
     * @see
     **/
    @Component
    public class MyMetaObjectHandler implements MetaObjectHandler {
    
        @Override
        public void insertFill(MetaObject metaObject) {
          //version是字段名 第二个参数是填充的数据
    this.setFieldValByName("version", new Long(0), metaObject); this.setFieldValByName("createTime", TimeHelper.getCurrentTime14(), metaObject); this.setFieldValByName("updateTime", TimeHelper.getCurrentTime14(), metaObject); } @Override public void updateFill(MetaObject metaObject) { this.setFieldValByName("updateTime", TimeHelper.getCurrentTime14(), metaObject); } }
  • 相关阅读:
    SyntaxError: Non-ASCII character 'xe7' in file解决方法
    python实现微信打飞机游戏
    ubuntu 系统出错一览
    MVC的特点
    架构
    策略模式
    bin
    使用XSLT实现Word下载
    <a>标签的href属性
    call-template和apply-templates
  • 原文地址:https://www.cnblogs.com/sansui/p/13579571.html
Copyright © 2011-2022 走看看