新来的同事写了一个resultMap
<resultMap type="com.xxx.xx.xx.entity.xxx" id="myMapId">
<result property="orderId" column="ORDER_ID" jdbcType="VARCHAR"/>
<result property="saleChannel" column="SALE_CHANNEL" jdbcType="VARCHAR"/>
</resultMap>
然后在mybatis的xml文件中的select标签中使用了这个map
<select id="getXXX" parameterType="java.lang.String" resultType="myMapId">
SELECT xxx ........
</select>
结果发现部分字段,返回为空。把表字段名和实体的类名拼写过了一遍,没发现对应不上的毛病。一番捣鼓,仔细一看,发现这个引用map的地方,把resultMap写成了resultType,难怪这个map就算列和属性名都对应上了,也不会起作用。
改为:
<select id="getXXX" parameterType="java.lang.String" resultMap="myMapId">
SELECT xxx ........
</select>
问题解决。
2019-10-29更新另一种可能
如果你这些字段是新增的,而且唯独这些新增的字段为null,那你可以从三个方面排查。
1.检查对应的entity类是否加上了这些字段
2.检查xml文件内的resultMap是否将表的列和这些字段做了映射
3.检查对应mapper的xml文件内的select语句,是否已经把这些字段select出来了(加在select的列)