Springboot Mybatis type-aliases-package错误的解决方案

 更新时间:2026年02月13日 11:05:23   作者:y打伞的鱼y  
在使用Spring Boot 2.7.0整合MyBatis 2.1.3时,遇到mybatis.type-aliases-package配置后XML别名爆红的问题,通过在model类上添加@Alias注解,为类定义别名,解决了问题

背景

最近在练习spring boot 2.7.0整合mybatis 2.1.3时,发现在使用mybatis.type-aliases-package配置后,xml中的别名会出现爆红的现象。

错误复现

配置文件中,使用mybatis.type-aliases-package配置类的别名

​在mybatis 的xml编写类名是出现红名错误,找不到相关类的错误,但是编译正常:

错误解决

@Alias是MyBatis注解之一,它可以为MyBatis映射文件中的别名做简化。在MyBatis映射文件中,如果定义了一个别名,我们可以使用@Alias注解来简写这个别名,提高代码的可读性和可维护性。

在model类的具体包增加 @Alias(“SerCompanyVO”) 注解。就是把自己的类名写在双引号中。具体如下:

上面的代码中,我们为UserEntity定义了一个别名SerCompanyVO,这样在映射文件中引用SerCompanyVO时,就可以直接使用SerCompanyVO来代替完整的类名了。

验证

增加注解后,可以看见xml中的别名可以通过点击跳转了。爆红错误,顺利解决。

源码

package com.study.model;

import org.apache.ibatis.type.Alias;

import java.util.List;

@Alias("SerCompanyVO")
public class SerCompanyVO {

    private int companyId;
    private String companyName;
    private String companyCode;
    private String companyMsg;
    private String companyCrdt;
    private List<SerCompanyTagVO> list;

    private SerCompanyTagVO serCompanyTagVO;


    public int getCompanyId() {
        return companyId;
    }

    public void setCompanyId(int companyId) {
        this.companyId = companyId;
    }

    public String getCompanyName() {
        return companyName;
    }

    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    public String getCompanyCode() {
        return companyCode;
    }

    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode;
    }

    public String getCompanyMsg() {
        return companyMsg;
    }

    public void setCompanyMsg(String companyMsg) {
        this.companyMsg = companyMsg;
    }

    public String getCompanyCrdt() {
        return companyCrdt;
    }

    public void setCompanyCrdt(String companyCrdt) {
        this.companyCrdt = companyCrdt;
    }

    public List<SerCompanyTagVO> getList() {
        return list;
    }

    public void setList(List<SerCompanyTagVO> list) {
        this.list = list;
    }

    public SerCompanyTagVO getSerCompanyTagVO() {
        return serCompanyTagVO;
    }

    public void setSerCompanyTagVO(SerCompanyTagVO serCompanyTagVO) {
        this.serCompanyTagVO = serCompanyTagVO;
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 打卡每日10道面试题——JVM篇

    打卡每日10道面试题——JVM篇

    总结了JVM一些经典面试题,分享出我自己的解题思路,希望对大家有帮助,有哪里你觉得不正确的话,欢迎指出,后续有空会更新,希望大家能够喜欢
    2021-06-06
  • Java中继承、多态、重载和重写介绍

    Java中继承、多态、重载和重写介绍

    这篇文章主要介绍了Java中继承、多态、重载和重写介绍,需要的朋友可以参考下
    2014-07-07
  • springboot内置tomcat之NIO处理流程一览

    springboot内置tomcat之NIO处理流程一览

    这篇文章主要介绍了springboot内置tomcat之NIO处理流程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • SpringAOP四种通知类型+环绕通知说明

    SpringAOP四种通知类型+环绕通知说明

    这篇文章主要介绍了SpringAOP四种通知类型+环绕通知说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java实现短信验证码5分钟有效时间

    java实现短信验证码5分钟有效时间

    这篇文章主要为大家详细介绍了java实现短信验证码5分钟有效时间,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-07-07
  • 如何使用JavaCV进行图像灰度化处理

    如何使用JavaCV进行图像灰度化处理

    在计算机视觉和图像处理领域,图像灰度化是一项基础且重要的任务,它将彩色图像转换为灰度图像,JavaCV 是一个强大的开源库,它提供了对各种计算机视觉算法和图像处理操作的支持,本文将详细介绍如何使用 JavaCV 进行图像灰度化处理,需要的朋友可以参考下
    2024-10-10
  • Springboot +redis+谷歌开源Kaptcha实现图片验证码功能

    Springboot +redis+谷歌开源Kaptcha实现图片验证码功能

    这篇文章主要介绍了Springboot +redis+⾕歌开源Kaptcha实现图片验证码功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • Java transient关键字原理解析

    Java transient关键字原理解析

    这篇文章主要介绍了Java transient关键字原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • java教程散列表和树所对应容器类及HashMap解决冲突学习

    java教程散列表和树所对应容器类及HashMap解决冲突学习

    本篇篇文章是java教程,主要介绍了java教程散列表,树所对应容器类及HashMap解决冲突的学习,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-10-10
  • 使用Feign配置请求头以及支持Https协议

    使用Feign配置请求头以及支持Https协议

    这篇文章主要介绍了使用Feign配置请求头以及支持Https协议,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论