问题原因:
这个错误通常出现在使用 MyBatis 查询结果映射时,MyBatis 无法找到适合的构造方法来将查询结果转换为指定的 Java 对象。具体来说,错误信息 “No primary or single unique constructor found for interface java.util.List” 意味着 MyBatis 在将查询结果转换为 List 类型对象时遇到了问题,因为它无法找到一个合适的构造方法来实例化 List 对象。
而导致这些问题有以下几种原因:
解决方法:
本人解决的步骤:
以上是网上搜集的一些解决办法,而我在经过问题排查后发现是因为自己在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”。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。