mybatis-plus 代码生成工具报错:java.lang.NoSuchFieldError: GAUSS

目录

一、背景

二、问题

三、解决方案

1、网上的答案:

2、自己的方案:

四、总结:

一、背景

框架:springboot2.2.4.RELEASE、mybatis-plus3.3.1版本

二、问题

使用mybatis-plus已集成的自动生成代码框架生成代码

我当时查看mybatis-plus官网文档的时候,也看到了他写的注意事项:

mybatis-plus 代码生成工具报错:java.lang.NoSuchFieldError: GAUSS_第1张图片

 然后 我就只针对引入的mybatis-plus-generator包依赖最新版本3.5.1

结果导致根据官网配置好生成代码的main方法之后,执行报错:

10:43:00.524 [main] DEBUG com.baomidou.mybatisplus.generator.AutoGenerator - ==========================准备生成文件...==========================
10:43:00.675 [main] WARN org.apache.velocity.deprecation - configuration key 'file.resource.loader.unicode' has been deprecated in favor of 'resource.loader.file.unicode'
10:43:00.681 [main] WARN org.apache.velocity.deprecation - configuration key 'file.resource.loader.class' has been deprecated in favor of 'resource.loader.file.class'
Exception in thread "main" java.lang.NoSuchFieldError: GAUSS
	at com.baomidou.mybatisplus.generator.config.querys.DbQueryRegistry.(DbQueryRegistry.java:44)
	at com.baomidou.mybatisplus.generator.config.DataSourceConfig.getDbQuery(DataSourceConfig.java:102)
	at com.baomidou.mybatisplus.generator.config.querys.DecoratorDbQuery.(DecoratorDbQuery.java:57)
	at com.baomidou.mybatisplus.generator.IDatabaseQuery$DefaultDatabaseQuery.(IDatabaseQuery.java:97)
	at com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder.getTableInfoList(ConfigBuilder.java:139)
	at com.baomidou.mybatisplus.generator.engine.AbstractTemplateEngine.batchOutput(AbstractTemplateEngine.java:226)
	at com.baomidou.mybatisplus.generator.AutoGenerator.execute(AutoGenerator.java:179)
	at com.baomidou.mybatisplus.generator.FastAutoGenerator.execute(FastAutoGenerator.java:213)
	at 

三、解决方案

1、网上的答案:

一开始直接搜索

Exception in thread "main" java.lang.NoSuchFieldError: GAUSS
    at com.baomidou.mybatisplus.generator.config.querys.DbQueryRegistry.(DbQueryRegistry.java:44)这部分错误信息

还真的能在网上搜索到相同的问题,别人的解决方案是因为generator包和mybatis-plus包引入的mybatis-plus-extension包版本不一致导致;我一开始也是根据他的解决方式去重,在generator依赖中排除mybatis-plus-extension。但是问题一样存在。

2、自己的方案:

最后没办法只能debug一步步的跟进代码最后排查到:

mybatisplus.annotation的3.3.1包中的DbType枚举类型没有GAUSS等等类型。

mybatis-plus 代码生成工具报错:java.lang.NoSuchFieldError: GAUSS_第2张图片

mybatis-plus 代码生成工具报错:java.lang.NoSuchFieldError: GAUSS_第3张图片

 最后mybatis-plus也改成3.5.1版本才有对应的枚举类中的值。

四、总结:

1、遇到问题需要定位到问题的本质,不能直接网上搜索答案(需要瞎猫碰到死耗子刚好解决你的问题那最好,不然你需要对网上的答案一个个的尝试之后才知道是否可行)。

2、我们在实际开发的时候是引入mybatis-plus的启动器,所以不能只是引入最新的generator的版本依赖。需要引入启动器最新版本依赖。(这个是我自己没有看清楚注意事项导致)

你可能感兴趣的:(mybatis-plus,mybatis,java,spring)