Mybatis 报错:Could not resolve type alias 'GpsResult'. Cause: java.lang.ClassNotFoundException: Cannot find class: GpsResult
ibatis 报错:Could not resolve type alias 'GpsResult'. Cause: java.lang.ClassNotFoundException: Cannot find class: GpsResult
。
找到报错位置:
<select id="selectGpsList" resultType="GpsResult">
select *
from gps_info
where 1
</select>
内容是查询一个 GPS 设备信息列表,但返回类型报错,提示找不到该类型的类。
这里主要是弄混了 resultType
与 resultMap
两个属性的用法。resultType
需要具体的实体类做映射,而 resultMap
通常是在 xml 直接定义并映射的,比如这里的 GpsResult
:
<resultMap type="GpsInfo" id="GpsResult">
<result property="id" column="id" />
<result property="xxYy" column="xx_yy" />
</resultMap>
type
属性值 GpsInfo
为对应的实体类,也就是说 resultMap
最后还是要对应到实体类的。
测试发现,resultMap
中的 property 需要与 type 实体类中的属性名称一致,不能新增、修改属性名称,但可以删除部分不需要返回的属性。也就是说,如果想要返回所有数据表中的字段,可以直接使用 resultType
对应实体类;如果想要返回部分字段,或者关联组合查询结果(association、collection),可以使用 resultMap
。