文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

“No primary or single unique constructor found for interface java.util.List”问题原因及解决

2023-09-10 13:22

关注
问题原因:

这个错误通常出现在使用 MyBatis 查询结果映射时,MyBatis 无法找到适合的构造方法来将查询结果转换为指定的 Java 对象。具体来说,错误信息 "No primary or single unique constructor found for interface java.util.List" 意味着 MyBatis 在将查询结果转换为 List 类型对象时遇到了问题,因为它无法找到一个合适的构造方法来实例化 List 对象。

而导致这些问题有以下几种原因:

  1. 错误的映射类型: 在 MyBatis 的映射文件中,可能将结果集映射为了 java.util.List 类型,但实际上 MyBatis 不能直接将结果集映射为 List 类型,因为 List 是一个接口,不能直接实例化。解决方法是将映射类型改为一个具体的 Java 类型,例如 com.yourpackage.YourEntityClass

  2. 缺少合适的构造方法: 如果实体类(例如 YourEntityClass)没有提供无参构造方法,同时 MyBatis 也无法找到合适的构造方法来匹配查询结果的列,就会出现这个错误。

  3. 构造方法参数匹配问题: 如果实体类中的构造方法参数和查询结果的列不匹配,也会导致这个错误。请确保实体类的构造方法参数顺序和类型与查询结果的列一一对应。

  4. 自定义结果映射问题: 如果使用了自定义的结果映射(ResultMap),请确保配置正确,并且没有产生冲突。

解决方法:

本人解决的步骤:

以上是网上搜集的一些解决办法,而我在经过问题排查后发现是因为自己在mapper层为加@PathVariable注解。

 不添加该注解导致错误的原因:

@PathVariable注解的作用在Controller层的方法中,参数注解 @PathVariable 用于将URL路径中的变量提取出来,并绑定到方法的参数上。它告诉Spring MVC框架该参数值应该从URL路径中获取,而不是从请求的请求体(Request Body)中获取。

        当在Controller层的方法参数上使用 @PathVariable 注解时,Spring MVC会尝试根据URL路径的占位符名称来匹配方法参数的名称,从而将URL路径中的变量值传递给方法参数。如果在使用 @PathVariable 注解时,没有在方法参数上添加该注解,Spring MVC将无法正确识别URL路径中的变量,从而导致找不到匹配的方法签名,进而报错 "No primary or single unique constructor found for interface java.util.List"。

        举个例子,这里我有一个URL路径 /delete/1,2,3,其中 1,2,3 是要删除的ids。在Controller层的方法中,如果没有使用 @PathVariable 注解,Spring MVC会默认从请求体中获取参数,但请求体中并没有ids参数,所以就会报错找不到匹配的方法签名。

        使用 @PathVariable 注解时,要确保注解的参数名与URL路径中的占位符名称一致,这样Spring MVC才能正确地将URL路径中的变量传递给方法参数。

来源地址:https://blog.csdn.net/LuoluoluoluoYan/article/details/132065315

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯