前几天在使用mybatis框架自定义mapper方法的时候报了这个错,现在把这个原因记录一下。
bug原因:
该自定义mapper方法用来返回表的主键ID这一列,mapper文件内容如下:
<select id="selectId" parameterType="com.service.dao.TestQuery" resultMap="java.util.List">
select
<if test="distinct">
distinct
</if>
id
from test_table
</select>
原因就出在resultMap=“java.util.List"这里,因为我要返回的数据是一个List,所以就用了resultMap和"java.util.List”。
bug修改:
- 将resultMap改为resultType
- 将java.util.List改为java.lang.Long(mybatis会自动将查询结果转换为一个List,所以在dao里面定义mapper方法时,返回值应仍为List)