IDEA中MyBatis的mapper文件 实体类名报红 Cannot resolve symbol ‘XXX

问题描述

使用IDEA,Spring Boot整合MyBatis开发时,写Mapper文件时,实体类名报红
IDEA中MyBatis的mapper文件 实体类名报红 Cannot resolve symbol ‘XXX_第1张图片

其实我已经在Spring Boot的配置文件application.yaml中配置了MyBatis对于实体类别名应该去找的路径,

mybatis:
  # 这样就可以在mapperXML中用简单的Account代替冗长的com.sapi.entity.Account
  type-aliases-package: com.sapi.entity

并且运行项目也没有任何error,证明项目代码是没有问题的。

看了这篇帖子 https://blog.csdn.net/m0_38050722/article/details/104990868 后才明白原来是在IDEA上装的MyBatis插件的锅,
把最热门的几个MyBatis插件都挨个试了一下,好像都有这个问题……但是如果就因为这个而停用MyBatis插件,意味着要放弃 MyBatis 插件的静态检测、跳转定义等等功能,实在是因噎废食

解决方案

我发现这个问题在Spring MVC项目中是不存在的,原因是在 Spring MVC项目中要写MyBatis的配置文件,MyBatis插件会检测到这个配置文件中对实体类别名的配置,类似于这样的


    

当 MyBatis 插件检测到这段配置后,就能把 mapper 文件中的实体类名(例如Account)识别为全路径的包名(例如com.sapi.entity.Account)。

所以,借助于 MyBatis 插件的这个特性,我的解决方案是创建一个哑的 MyBatis 配置文件,说它是哑的(dummy),是因为这个文件对于项目来说压根没有作用,仅仅是写给IDEA上安装的 MyBatis 插件看的。

具体来说,就是在resouces目录下扔一个xml文件,文件名可以任意取,内容为:





    
         
    

不得不说这个方案并不完美,只好希望有能对Spring Boot项目支持好一点的 MyBatis 插件出现吧。

你可能感兴趣的:(java,mybatis,intellij-idea,java,搜索引擎,运维)