org.apache.ibatis.binding.BindingException: Mapper method 'domain.mapper.insertUserMapper.selectUser' has an unsupported return type: interface java.util.List
时间: 2023-07-01 16:27:21 浏览: 304
这个错误提示通常是因为 MyBatis 没有找到对应的映射方法,或者映射方法的返回类型不正确导致的。
首先,你需要检查一下你的 Mapper 方法名是否正确,是否与对应的 Mapper.xml 文件中的 id 一致。如果方法名不一致,MyBatis 就无法找到对应的映射方法。
其次,你需要检查一下 Mapper 方法的返回值类型是否正确。根据错误提示信息来看,你的 Mapper 方法 `domain.mapper.insertUserMapper.selectUser` 返回类型应该是 `java.util.List`,而这个类型是不能被 MyBatis 直接处理的。
你需要将返回值类型修改为正确的类型,例如 `User` 或者 `List<User>`。修改完之后,再检查一下对应的 Mapper.xml 文件中的 SQL 语句是否正确,确保它能够返回正确的结果。
相关问题
org.apache.ibatis.binding.BindingException: Mapper method 'com.panda.ums.mapper.DeviceInfoMapper.deleteUserInfoByIdAndName' has an unsupported return type: class com.panda.ums.model.UserInfo
这个异常是Mybatis框架抛出的,表示Mapper接口中的一个方法返回类型不被支持。根据异常信息,方法`com.panda.ums.mapper.DeviceInfoMapper.deleteUserInfoByIdAndName`的返回类型是`com.panda.ums.model.UserInfo`,这个类型不被Mybatis框架支持作为Mapper方法的返回类型。
Mapper方法的返回类型必须是以下之一:
- void
- int or Integer
- long or Long
- boolean or Boolean
- Map
- List
- Set
- Array
- Collection
你需要检查这个Mapper接口中的方法,将返回类型修改为上述类型之一即可。
org.apache.ibatis.binding.BindingException: Type interface qst.mapper.UserMapper is not known to the MapperRegistry.
引用中提到,出现这种情况的主要原因是主配置文件标签没有正确指向映射接口的配置文件。解决方案可以是检查<mapper>的class属性或resource属性,确保路径和文件名的正确性。在引用中还提到,使用命名参数可以在传递参数时给参数加上注解,示例代码如下所示:
```
public Employee getEmpByIdandName(@Param("id") Integer id, @Param("name") String name);
```
而在引用中,指定参数的方法如下所示:
```
<select id="getEmpByIdandName" resultType="com.qst.mybatis.Employee">
select * from employee where id = #{param1} and name= #{param2}
</select>
```
根据错误信息"org.apache.ibatis.binding.BindingException: Type interface qst.mapper.UserMapper is not known to the MapperRegistry.",请检查以下几个方面:
1. 确保UserMapper接口的包路径和文件名正确。
2. 确保主配置文件中的<mapper>标签中的class属性或resource属性引用了正确的UserMapper接口配置文件。
3. 确保UserMapper接口中的方法名和映射文件中的sql语句id一致。
阅读全文