一、问题描述
错误提示
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.IncompleteElementException:Could not find result map com.***.entity.User
大致意思就是select标签找不到resultMap属性的引用值"com.***.entity.User"
mapper.xml实例代码
<!-- 数据表字段和实体类属性对应关系配置 -->
<resultMap id="userMap" type="com.sale.entity.User" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="sex" property="sex" jdbcType="VARCHAR" />
</resultMap>
<!-- 查询 -->
<select id="findSmallItemsBytevonumber" resultMap="com.sale.entity.User" parameterType="string">
select * from tevo_small_items where sex = #{sex,jdbcType=VARCHAR};
</select>
二、 解决办法
将<select></select>标签中的属性resultMap="com.sale.entity.User" 改成 resultMap="userMap"
表示将<select></select>查询返回的结果通过<resultMap></resultMap>定义的字段和属性对应关系映射到实体类当中。
PS:<select></select>标签resultMap和resultType使用说明
属性为resultMap
select返回的记录中,字段可以跟实体类属性名不一样,在<resultMap></resultMap>中配置属性和字段对应关系。resultMap属性值为<resultMap></resultMap>定义的id。
属性resultType
select返回的记录中,字段名必须和实体类属性名一模一样。resultType属性值为实体class的全局名或配置的别名。