【编程问题】解决 mapper.xml 文件的 resultType 爆红问题:Cannot resolve symbol ‘xxx‘ 您所在的位置:网站首页 mybatis注解mapper爆红 【编程问题】解决 mapper.xml 文件的 resultType 爆红问题:Cannot resolve symbol ‘xxx‘

【编程问题】解决 mapper.xml 文件的 resultType 爆红问题:Cannot resolve symbol ‘xxx‘

2024-06-02 04:35| 来源: 网络整理| 查看: 265

解决mapper.xml文件的resultType爆红问题:Cannot resolve symbol 'xxx' 1.问题描述2.问题分析3.问题解决3.1 配置注解(推荐)3.2 配置全类名3.3 删除插件 4.事件感悟

系统:Win10 JDK:1.8.0_333 IDEA:2022.2.4 SpringBoot:2.7.6

1.问题描述

在一次开发 SpringBoot 项目时,配合使用 MybatisPlus 返回实体类时,配置的 mapper.xml 文件的 resultType 属性爆红,鼠标放上去提示: Cannot resolve symbol ‘TmsTb01’ 如下图所示: 在这里插入图片描述 打开对应的Mapper文件,可以发现对应的方法也是爆红,鼠标放上去提示: Result type not match for select id=“selectByTime” srcType: targetType: com.electric.srm.entity.tms.TmsTb01 如下图所示: 在这里插入图片描述

2.问题分析

这里我查了一下,发现网上有各种各样的可能会导致这个问题,我这里将我这个项目的情况描述下

1. 项目运行没有问题(说明代码都是对的,该配置的都已经配置好了,只是显示的问题) 比如这里的 type-aliases-package: com.electric.srm.entity 别名扫描我都是配置好了的2. 没有多余或少插件(这里看到其他人有可能装了什么不该装的插件,或者少了什么插件,我这里都不是) 比如什么 Lombok 插件我是装了的 3.问题解决 3.1 配置注解(推荐)

在返回实体类上添加一个注解:@Alias(“TmsTb01”),这里可以看到添加之后,resultType就不会爆红了 在这里插入图片描述

3.2 配置全类名

这里我们如果将 resultType 改为全类名,也可以达到消除爆红的效果(已测试),不过这样显得我们配置的别名扫描很笨,所以我就没用这个方案

3.3 删除插件

我看到还有一种方案是,删除 MybatisX 插件,这个插件用起来挺可爱的,我就没考虑这个方案,不过感觉应该有效

4.事件感悟

这次从发现这个问题到处理这个问题,花了我大概两个小时,虽然这个问题不影响项目的正常运行,不过当我看到这些爆红的提示,那是相当的难受,稍微有点强迫症。不过这上面三种解决方案还不是我理想的解决方案,我感觉既然代码能够运行,没有报错,那说明代码就是正确的,为什么会提示红色报错呢。 我感觉大概率是 MybatisX 的问题导致的这个报错问题,希望后面这个插件能够更新处理这个问题,或者有人打脸说不是这个问题,给我一个更好的解决方案。 在这次解决问题的过程中,我也想过有没有可能是依赖的版本问题,或者配置问题,说到底还是学艺不精、功力不厚,希望后面能够不断学习,逐渐成长,遇到 BUG 不要害怕,而是勇敢的面对它,坚持就是胜利,奥利给。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有