MetaObjectHandler没有被执行

今天使用mybatis-plus的自动填充功能时
发现代码根本没有走MetaObjectHandler
改了一万遍代码也不知道为什么

    @TableField(fill = FieldFill.INSERT)
    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;



@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {
    @Override
    public void insertFill(MetaObject metaObject) {
        log.info("插入!");
        log.info(metaObject.toString());
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        log.info("更新!");
    }
}

mp操作根本没有经过这个组件
我开了一个新项目测试了,发现没有问题,排除了版本原因
然后输出了本项目spring容器中所有的bean
发现MetaObjectHandler被加载进容器了,但就是没有被执行
希望有专家可以指导一下

给加个别名试试

img

  • 如果你的insert语句指定了字段,并且这个字段没有自动填充,那么就不会走MetaObjectHandler
  • 看下你插入的代码

如有帮助,请采纳,十分感谢!