1.前言

太久没写这种套娃式的sql语句了,导致今天一写,直接给我整了个报错。

原因其实蛮简单的,mybatis的xml中的resultMap标签规定了内标签的顺序,写错了就会直接解析不出来,从而报错。就和sql语句一样的,定义了自己的规则.

我先说说解决方式,我们再接着聊.

2.解决方式

解决:resultMap的中顺序必须是

 <resultMap>​<id></id>​<result />​......​<association />​.....​<collection/>​</resultMap>

我们一层一层套娃的话,必须要按照这样的规则来写.

我的xml中这么写,就一直在报这个错误.


改完后:

严格按照规则来即可.

3.总结

resultMap总结

3.1 id

映射数据表中主键。另外如果resultMap 多层嵌套中有多个id,并且名字相同的话,查询的时候尽量给个别名会更好一些。

3.2 result

就是正常映射到pojo类的一个属性。

3.3 resultType:

作用:将查询结果按照sql列名pojo属性名一致性映射到pojo中。

场合:常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示在页面时,此时可直接使用resultType将每一条记录映射到pojo中,在前端页面遍历list(list中是pojo)即可。

3.4 resultMap:

使用association和collection完成一对一和一对多高级映射

3.5 association:

作用:将关联查询信息映射到一个pojo对象中。

场合:为了方便查询关联信息可以使用association将关联订单信息映射为用户对象的pojo属性中,比如:查询订单及关联用户信息。

使用resultType无法将查询结果映射到pojo对象的pojo属性中,根据对结果集查询遍历的需要选择使用resultType还是resultMap。

3.6 collection:

作用:将关联查询信息映射到一个list集合中。

场合:为了方便查询遍历关联信息可以使用collection将关联信息映射到list集合中,比如:查询用户权限范围模块及模块下的菜单,可使用collection将模块映射到模块list中,将菜单列表映射到模块对象的菜单list属性中,这样的作的目的也是方便对查询结果集进行遍历查询。

如果使用resultType无法将查询结果映射到list集合中。

后语

我们一起加油吧

你好,我是博主宁在春:主页

希望本篇文章能让你感到有所收获!!!

我们:待别日相见时,都已有所成

欢迎大家一起讨论问题

mybatis元素类型为 “resultMap“ 的内容必须匹配 “(constructor?,id *,result*,association报错解决相关推荐

  1. 元素类型为 “resultMap” 的内容必须匹配 “(constructor?,id*,result*,association*,collection*,discriminator?)”

    错误 原配置如下: <resultMap id="xxxDetail" type="xxx" extends="xxxResult"& ...

  2. MyBatis中提示:元素类型为 mapper 的内容必须匹配 (cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|de

    场景 整合MyBatis后运行项目提示: 元素类型为 "mapper" 的内容必须匹配 "(cache-ref|cache|resultMap*|parameterMap ...

  3. 元素类型为 mapper 的内容必须匹配 (cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|selec

    在配置ssm框架的时候,写mapper映射文件的时候,总是会想写一些注解. 可是在编译的时候会出现这个bug,是因为在前面写了注释.导致了执行顺序的问题.需要把一些注释删掉,就可以正常执行了. 像这样 ...

  4. 元素类型为 “mapper“ 的内容必须匹配 “(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|selec

    一.报错图片 二.解决 出现这个问题原因有很多,如注释不规范,或者里面多写了多余符号.简而言之,就是.xml文件书写不规范. 比如我,就是这里多写了符号 三.解决思路 本篇文章想吐槽的点在这里 结合最 ...

  5. Struts2项目.xml文件配置错误:元素类型为 package 的内容必须匹配 (result-types?,interceptors?,default-interceptor-ref?,d...

    配置文件要严格按照以下顺序: result-types interceptors default-interceptor-ref default-action-ref default-class-re ...

  6. mybatis项目启动报错 The content of element type resultMap must match (constructor?,id*,result*,associat...

    启动项目报错 2018-02-26 17:09:51,535 ERROR [org.springframework.web.context.ContextLoader] - Context initi ...

  7. 使用mybatis插入数据到数据库中,显示插入成功,且没有报错,但是数据库中并没有新插入的数据的原因

    使用mybatis插入数据到数据库中,显示插入成功,且没有报错,但是数据库中并没有数据的原因 没有提交事务,有时没有配置自动提交事务的设置,所以需要手动提交事务,即 sqlSession.commit ...

  8. mysql脚本文件长什么样_在linux下执行mysql脚本文件,内容是创建一个FUNCTION,总是报错,请帮看下原因是什么?多谢...

    linux下装的是mysql客户端,server是另一台服务器,做如下操作,总是报错,请大家帮看看什么原因?多谢 (关键是这个脚本本人用navicat工具执行就没有问题,说明脚本身没有语法问题.) r ...

  9. oracle类型不匹配,sys_refcursor的使用,报错类型不匹配

    ---------------------------------------------------------------------------------------------------- ...

最新文章

  1. 神经网络基础:(1)得分函数 or 得分函数
  2. Linux下使用Opencv打开笔记本摄像头
  3. Selenium-switch_to_window出现删除线
  4. 成功解决成功解决return _iterencode(o, 0) ValueError: Circular reference detected
  5. python模块和类_Python类、模块、包的区别
  6. 如何预热Web API,减少初次执行时间
  7. 淘宝首页的HTML以及CSS技术点
  8. 贝叶斯网络的应用实例一
  9. 关于java中equals与==的区别的小实验
  10. cad刷新快捷键_47个CAD快捷键+50个技巧,了解这些CAD操作,你就偷着乐吧
  11. SpreadJS 13.0.0 源代码
  12. 华为novia3i鸿蒙,华为nova3i一马当先:值得年轻人购买的智能手机推荐
  13. 企业号第三方服务商可信域名配置
  14. 【生活日记】最近心态不好啊,沉不住气
  15. 存储器类型与S3C2440启动地址
  16. NTKO 文档控件问题总结
  17. 微软自带输入法英文输入字母间间距忽然就变大了
  18. 如何在Mac版达芬奇中安装使用LUT调色预设?达芬奇lut调色预设安装使用教程
  19. MySQL主从复制之realy_log_recovery
  20. 连接Mysql时,出现Establishing SSL connection without server's identity verification is not .......警告

热门文章

  1. SAP用户权限相关操作
  2. 手把手教你搭建用户画像,数据分析效率提升百倍
  3. 兼顾隐私与权利,华为以“科技有道”,实现“隐私无价”
  4. 干掉耐克的,绝不会是下一个耐克?
  5. android怎么监听多点触摸_110寸高清触摸一体机
  6. 原生与html,解析原生与html之间进行的一些关联
  7. 文件逆序改为正序脚本
  8. python中lambda以及与filter/map/reduce结合的用法
  9. python 小波去噪,用Pywavelet去噪信号?
  10. dll文件复制和替换不了_重新编译mono——Android动态更新dll