Spring boot Mybatis type-aliases-package错误解决

在整合SpringBoot 2.7.0和MyBatis 2.1.3时遇到XML别名显示错误,即使编译正常。通过在模型类上使用@Alias注解为SerCompanyVO指定别名,解决了XML中类名无法识别的问题。添加注解后,XML中的别名可以正确链接,消除错误。
摘要由CSDN通过智能技术生成

背景

最近在练习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;
    }
}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

y打伞的鱼y

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

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

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

打赏作者

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

抵扣说明:

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

余额充值