mybatis元素类型为 “resultMap“ 的内容必须匹配 “(constructor?,id *,result*,association报错解决
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报错解决相关推荐
- 元素类型为 “resultMap” 的内容必须匹配 “(constructor?,id*,result*,association*,collection*,discriminator?)”
错误 原配置如下: <resultMap id="xxxDetail" type="xxx" extends="xxxResult"& ...
- MyBatis中提示:元素类型为 mapper 的内容必须匹配 (cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|de
场景 整合MyBatis后运行项目提示: 元素类型为 "mapper" 的内容必须匹配 "(cache-ref|cache|resultMap*|parameterMap ...
- 元素类型为 mapper 的内容必须匹配 (cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|selec
在配置ssm框架的时候,写mapper映射文件的时候,总是会想写一些注解. 可是在编译的时候会出现这个bug,是因为在前面写了注释.导致了执行顺序的问题.需要把一些注释删掉,就可以正常执行了. 像这样 ...
- 元素类型为 “mapper“ 的内容必须匹配 “(cache-ref|cache|resultMap*|parameterMap*|sql*|insert*|update*|delete*|selec
一.报错图片 二.解决 出现这个问题原因有很多,如注释不规范,或者里面多写了多余符号.简而言之,就是.xml文件书写不规范. 比如我,就是这里多写了符号 三.解决思路 本篇文章想吐槽的点在这里 结合最 ...
- Struts2项目.xml文件配置错误:元素类型为 package 的内容必须匹配 (result-types?,interceptors?,default-interceptor-ref?,d...
配置文件要严格按照以下顺序: result-types interceptors default-interceptor-ref default-action-ref default-class-re ...
- 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 ...
- 使用mybatis插入数据到数据库中,显示插入成功,且没有报错,但是数据库中并没有新插入的数据的原因
使用mybatis插入数据到数据库中,显示插入成功,且没有报错,但是数据库中并没有数据的原因 没有提交事务,有时没有配置自动提交事务的设置,所以需要手动提交事务,即 sqlSession.commit ...
- mysql脚本文件长什么样_在linux下执行mysql脚本文件,内容是创建一个FUNCTION,总是报错,请帮看下原因是什么?多谢...
linux下装的是mysql客户端,server是另一台服务器,做如下操作,总是报错,请大家帮看看什么原因?多谢 (关键是这个脚本本人用navicat工具执行就没有问题,说明脚本身没有语法问题.) r ...
- oracle类型不匹配,sys_refcursor的使用,报错类型不匹配
---------------------------------------------------------------------------------------------------- ...
最新文章
- 神经网络基础:(1)得分函数 or 得分函数
- Linux下使用Opencv打开笔记本摄像头
- Selenium-switch_to_window出现删除线
- 成功解决成功解决return _iterencode(o, 0) ValueError: Circular reference detected
- python模块和类_Python类、模块、包的区别
- 如何预热Web API,减少初次执行时间
- 淘宝首页的HTML以及CSS技术点
- 贝叶斯网络的应用实例一
- 关于java中equals与==的区别的小实验
- cad刷新快捷键_47个CAD快捷键+50个技巧,了解这些CAD操作,你就偷着乐吧
- SpreadJS 13.0.0 源代码
- 华为novia3i鸿蒙,华为nova3i一马当先:值得年轻人购买的智能手机推荐
- 企业号第三方服务商可信域名配置
- 【生活日记】最近心态不好啊,沉不住气
- 存储器类型与S3C2440启动地址
- NTKO 文档控件问题总结
- 微软自带输入法英文输入字母间间距忽然就变大了
- 如何在Mac版达芬奇中安装使用LUT调色预设?达芬奇lut调色预设安装使用教程
- MySQL主从复制之realy_log_recovery
- 连接Mysql时,出现Establishing SSL connection without server's identity verification is not .......警告
热门文章
- SAP用户权限相关操作
- 手把手教你搭建用户画像,数据分析效率提升百倍
- 兼顾隐私与权利,华为以“科技有道”,实现“隐私无价”
- 干掉耐克的,绝不会是下一个耐克?
- android怎么监听多点触摸_110寸高清触摸一体机
- 原生与html,解析原生与html之间进行的一些关联
- 文件逆序改为正序脚本
- python中lambda以及与filter/map/reduce结合的用法
- python 小波去噪,用Pywavelet去噪信号?
- dll文件复制和替换不了_重新编译mono——Android动态更新dll