【maven】Result Maps collection does not contain value

本文记录了一次开发中遇到的MyBatis resultMap BUG,并详细解释了如何将resultMap改为resultType来解决问题。同时,文章对比了resultMap与resultType的区别,阐述了各自的适用场景。
  • 今天开发遇到一个出人意料的BUG,特意记录下来:

在这里插入图片描述
解决方案:
1:找到报错的mapper映射文件,查看里面的内容:
在这里插入图片描述
2:把resultMap改为resultType,问题就解决了。

补充

resultMap和resultType的区别:

A:resultType:( 基本映射)
查询的列名和pojo中的属性名必须一致。(数据库字段和实体类属性名必须全部相同)
B: resultMap :(高级映射)
查询的列名和pojo的属性名不一致,需定义resultMap(列名和pojo属性名之间的映射关系)

总结:

1:resultType和resultMap功能类似 ,都是返回对象信息 。
2:resultType必须列名和属性名保持一致,有苛刻的使用条件。
3:resultMap功能更强大,但是需要自行指定映射关系。

Exception in thread "main" java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.tianshi.dao.UserDao. at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:1054) at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:763) at org.apache.ibatis.builder.MapperBuilderAssistant.getStatementResultMaps(MapperBuilderAssistant.java:394) at org.apache.ibatis.builder.MapperBuilderAssistant.addMappedStatement(MapperBuilderAssistant.java:285) at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:113) at org.apache.ibatis.session.Configuration.lambda$buildAllStatements$2(Configuration.java:905) at java.util.Collection.removeIf(Collection.java:414) at org.apache.ibatis.session.Configuration.buildAllStatements(Configuration.java:904) at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:881) at org.apache.ibatis.session.Configuration.hasStatement(Configuration.java:876) at org.apache.ibatis.binding.MapperMethod$SqlCommand.resolveMappedStatement(MapperMethod.java:257) at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:227) at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:53) at org.apache.ibatis.binding.MapperProxy.lambda$cachedInvoker$0(MapperProxy.java:108) at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) at org.apache.ibatis.util.MapUtil.computeIfAbsent(MapUtil.java:35) at org.apache.ibatis.binding.MapperProxy.cachedInvoker(MapperProxy.java:95) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:86) at com.sun.proxy.$Proxy5.selectAllOrderByDesc(Unknown Source) at com.tianshi.TestMybatis8.main(TestMybatis8.java:18) Process finished with exit code 1
最新发布
12-13
对于报错"Mapped Statements collection does not contain value for dept.selectDept",有几个可能的解决思路。 首先,需要检查mabatis全局配置文件是否正确加载了映射器。确保在全局配置文件中正确配置了mapper的路径。 其次,检查全局配置文件和mapper的XML文件是否已经编译。确保这些文件已经正确编译到了目标位置,可以查看一下编译后的目录结构。 接着,检查配置文件中的namespace是否与接口类相匹配。确保配置文件中的namespace与接口类的包名和类名一致。还要确保在实现类中调用方法时有正确加上namespace。 最后,检查配置文件中配置的方法名称、输入值、返回值是否与接口中的完全一致。确保配置文件中的方法名称、输入值、返回值与接口中的方法定义一致。 此外,还需要检查项目的maven配置文件,确保正确配置了build的resources,以确保mapper.xml文件被正确加载到项目中。 综上所述,解决"Mapped Statements collection does not contain value for dept.selectDept"的方法包括:检查全局配置文件的映射器加载、检查配置文件和mapper的XML文件是否编译、确保namespace与接口类匹配、检查配置文件中方法的名称、输入、输出是否一致,以及检查maven配置文件是否正确配置build的resources。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mybatisMapped报错 Statements collection does not contain value for](https://download.youkuaiyun.com/download/wangdujing/3925103)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Mybatis出现Mapped Statements collection does not contain value错误解决方法](https://blog.youkuaiyun.com/TXNull/article/details/81043926)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Mapped Statements collection does not contain value for 解决方法](https://blog.youkuaiyun.com/weimezilie/article/details/51940546)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值