【沉浸式解决问题】Mybatis-Plus 新版代码生成器,策略配置中的模糊表排除不生效,模糊表匹配正常

一、问题描述

之前写了一篇【保姆级喂饭教程】Mybatis Plus Generator 3.5.12最新版代码生成器配置教程,后来在排除一些测试表、临时表等对应后缀表时却发现模糊表排除无法生效,但是模糊表匹配是正常的,经过多种测试和分析都找不到结果,去GitHub上提了个issue,才找到原因。


二、场景还原

1. 策略配置

截取策略配置如下,排除包含base的表名

.strategyConfig(builder -> {
    builder.enableSkipView()
            .addInclude()
            .notLikeTable(new LikeTable("base"))

            .entityBuilder()
            .superClass(BaseEntity.class)
            .enableChainModel()
            .enableLombok(new ClassAnnotationAttributes("@Data","lombok.Data"))
            .enableTableFieldAnnotation()
            .addSuperEntityColumns()
            .enableFileOverride()

            .controllerBuilder().disable()

            .serviceBuilder().disable()

            .mapperBuilder()
            .mapperAnnotation(Mapper.class)
            .enableFileOverride();
})

三、原因分析

结果只是因为官方不支持,哈哈哈,notLikeTable这种只使用于使用SQLQuery的方式。
https://baomidou.com/guides/new-code-generator/#生成方式
在这里插入图片描述


四、解决方案

由于官方不支持,那没有直接的解决方案,只能是曲线救国一下

  • 正常表都加前缀,通过模糊表匹配来匹配需要生成的表
  • 第一次全部生成所有表,删除临时表的文件,后续通过表名匹配增加新表
  • 改用SQLQuery的方式进行查询

我最后采用了第二种,二次封装写了一个代码生成器。


喜欢的点个关注吧><!祝你永无bug!

/*
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            佛祖保佑       永无BUG
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

荔枝吻

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

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

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

打赏作者

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

抵扣说明:

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

余额充值