当前使用版本(必填,否则不予处理)

版本 3.0.7.1

该问题是如何引起的?(确定最新版也有问题再提!!!)

重现步骤(如果有就写完整)

  1. 实体类:@Data @NoArgsConstructor @AllArgsConstructor @TableName("user") public class User { private Long id; private String name; private Integer age; @TableField(fill = FieldFill.INSERT_UPDATE) private String email; //在创建的时候填充这个字段 private LocalDateTime createDate; //在更新的时候更新这个字段 private LocalDateTime updateDate; //逻辑删除标志 @TableLogic //查询的时候排除这个属性 @TableField(select = false) private Integer delFlag;

}

  1. 自定义处理器

@Component public class MyObjectHandler implements MetaObjectHandler {

@Override
public void insertFill(MetaObject metaObject) {
    this.strictInsertFill(metaObject, "email", String.class, "liukun");
    System.out.println("aaa");
    System.out.println("bbb");
}

@Override
public void updateFill(MetaObject metaObject) {
    System.out.println("更新");

}

}

  1. test测试如下 @Test public void test7(){ User user = new User(); user.setName("陈二牛");

    int insert = userMapper.insert(user);
    System.out.println(insert);
    

    }

4,控制台打印 ==> Preparing: INSERT INTO user ( id, name, age, email ) VALUES ( ?, ?, ? ) ==> Parameters: 1257479187862765570(Long), 陈二牛, null <== Updates: 1

  1. pom 文件如下

4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.2.RELEASE com.example demo 0.0.1-SNAPSHOT demo Demo project for Spring Boot

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!--<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>-->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.22</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.0.7.1</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

  1. yml 文件如下

server: port: 8081 servlet: context-path: /demo spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/my-plus?serverTimezone=UTC&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8 username: root password: root filters: stat maxActive: 20 initialSize: 1 maxWait: 60000 minIdle: 1 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 20 mybatis-plus: #日志配置 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #扫描xml文件 mapper-locations: classpath:templates/mapper/*Mapper.xml #注册别名实体类 typeAliasesPackage: com.springboot.mybatisplus.demo.model #逻辑删除配置 global-config: db-config: #逻辑不删除值为0是mp默认值 logic-not-delete-value: 0 #逻辑删除为1是mp默认值 logic-delete-value: 1

  1. 最后发现 MyObjectHandler 两个方法都不执行

报错信息

Comment From: miemieYaho

自己排查

Comment From: xgj1988

@qiaozhiqma 搞定没得