错误原因



这个错误通常表示在解析 Mybatis 映射文件(Mapper XML)时出现了问题,可能的原因有两个:

  1. 集合属性缺少 javaType 或 resultMap 属性:该错误信息显示了 "Ambiguous collection type for property 't_emp'. You must specify 'javaType' or 'resultMap'",表明 t_emp 属性的集合类型不明确,需要指定 javaType 或 resultMap。这通常发生在映射文件中的集合属性没有指定 javaType 或 resultMap,并且 Mybatis 无法自动推断出其类型时。要解决这个问题,需要在映射文件中为集合属性添加 javaType 或 resultMap,明确其类型。

  2. 映射文件语法错误:另外一个可能的原因是映射文件中存在语法错误,导致 Mybatis 无法正确解析该文件。在这种情况下,需要仔细检查映射文件的语法是否正确,以及是否存在语法错误。

针对以上原因,你可以参照以下方法进行排查和修复:

  1. 检查集合属性是否指定了 javaType 或 resultMap,如果没有,则添加相应的属性定义。
  2. 检查映射文件是否存在语法错误,例如元素是否正确闭合、属性是否正确赋值等。
  3. 确保 Mybatis 版本与依赖库的版本相匹配,版本不匹配也可能导致解析错误。
  4. 尝试使用 Mybatis 提供的工具进行调试和分析,例如使用 Mybatis Generator 自动生成 Mapper 类或 XML 文件,查看其生成的代码是否符合预期。

示例纠正后的映射文件:

<resultMap id="deptAndEmpResultMap" type="com.north.model.Dept">
<id property="deptno" column="deptno"/>
<result property="dname" column="dname"/>
<result property="loc" column="loc"/>
<collection property="t_emp" resultMap="empResultMap"/>
</resultMap> <resultMap id="empResultMap" type="com.north.model.Emp">
<id property="empno" column="empno"/>
<result property="ename" column="ename"/>
<result property="job" column="job"/>
</resultMap>

这里 collection 配置项的 resultMap 属性指向了指定类型的映射配置。

解决方案

吐槽一下自己 : 自己真的有被自己给蠢到 , 写的时候不注意

在实体类当中添加另一个实体类进行封装 , 然后再进行查询

    private Emp emp;

    public Emp getEmp() {
return emp;
} public void setEmp(Emp emp) {
this.emp = emp;
}

最终问题得到解决

查询结果显示 :

Cause: org.apache.ibatis.builder.BuilderException: Ambiguous collection type for property 'emps'. You must specify 'javaType' or 'resultMap'的更多相关文章

  1. mybatis <fireach> 拼接sql语句 org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: org.apache.ibatis.builder.BuilderException: Error evaluating expression 'in'. Cause:

    <select id="getUserIn" parameterType="QueryVo" resultMap="userMap"& ...

  2. ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.

    在做多表映射查询时,在同一个resultMap中写了1:1映射和1:n映射,结果测试时报错如下: org.apache.ibatis.exceptions.PersistenceException: ...

  3. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xm

    mybatis解析xml配置文件出现异常: org.apache.ibatis.exceptions.PersistenceException: Error building SqlSession. ...

  4. org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML.问题思路

    15:36:34,549 WARN DefaultListableBeanFactory:1416 - Bean creation exception on FactoryBean type chec ...

  5. 解决:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression 'requestMap.maintenancename != null and requestMap.maintenance

    异常如下:org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.Builde ...

  6. The error may exist in com/bjpowernode/dao/StudentDao.xml ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderExcept

    The error may exist in com/bjpowernode/dao/StudentDao.xml### Cause: org.apache.ibatis.builder.Builde ...

  7. mybatis异常:nested exception is org.apache.ibatis.builder.BuilderException: Error resolving JdbcType

    异常详细 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.Builde ...

  8. ### Error building SqlSession. ### The error may exist in SQL Mapper Configuration ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibat

    这是一个由粗心导致的错误,具体报错如下: org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSessio ...

  9. Error building SqlSession. ### The error may exist in dao/UserMapper.xml ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration(2 字节的 UTF-8 序列的字节 2 无效。)

    关于在学习Mybatis框架时运行报错 Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error building ...

  10. 报错 ———— Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 6; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。

    报错 <?xml version="1.0" encoding="UTF-8"?>  必须是XML文件的第一个元素且前面不能空格. ### Erro ...

随机推荐

  1. 搭建DHCP服务,实现自动分配地址

    DHCP实现原理 DHCP定义 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作.它是一种流行的Clien ...

  2. Terraform 系列-Terraform Cloud 比 Terraform OSS 有哪些增强?

    系列文章 Terraform 系列文章 前言 最近在使用 Terraform Cloud 来置备 OCI 的 Always Free Tier, 发现它非常好用,相比 Terraform OSS, 用 ...

  3. 【FAQ】关于华为推送服务因营销消息频次管控导致服务通讯类消息下发失败的解决方案

    一. 问题描述 使用华为推送服务下发IM消息时,下发消息请求成功且code码为80000000,但是手机总是收不到消息: 在华为推送自助分析(Beta)平台查看发现,消息发送触发了频控. 二. 问题原 ...

  4. MQ高级

    1.消息可靠性 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: 生产者发送的消息未送达exchange 消息到达exchange后未到达 ...

  5. HDCTF_2023

    pwnner 附件 有后门函数,seed是一个固定值, //伪随机数 #include <stdio.h> #include <stdlib.h> int main() { i ...

  6. Python_14 接口测试报告

    一.查缺补漏 1. 测试用例要复制到pycharm执行的项目中,才能显示 2. 函数用下划线,类用大驼峰 3. pycharm一行显示(不换行): File -> settings-> E ...

  7. Python if 语句练习

    if语句 练习 # 1.以特殊方式跟管理员打招呼 # 创建一个至少包含 5 个用户名的列表,且其中一个用户名为 'admin' .想象你要编写代码,在每位用户登录网站后都打印一条问 # 候消息.遍历用 ...

  8. [C++核心编程] 3、函数提高

    文章目录 3 函数提高 3.1 函数默认参数 3.2 函数占位参数 3.3 函数重载 3.3.1 函数重载概述 3.3.2 函数重载注意事项 3 函数提高 3.1 函数默认参数 在C++中,函数的形参 ...

  9. Python-获取Local Storage和Session Storage

    一.简介 LocalStorage 是只读的.数据存储也是跨浏览器会话.LocalStorage 类似于SessionStorage. 区别在于,数据存储在 LocalStorage 是无期限的,而当 ...

  10. PHP获取网页返回的JSON数据并在微信换行展示

    1 $url ="http://japi.juhe.cn/joke/content/text.from?page=&pagesize=&key=c968d04ab0ea15e ...