在作mybatis多表查詢的時候,出現了下面的錯誤:java
java.lang.IllegalArgumentException: Result Maps collection does not contain value for com.up.sell.mapper.system.AdvertisementMapper.areasResult at org.apache.ibatis.session.Configuration$StrictMap.get(Configuration.java:888) ~[mybatis-3.4.6.jar:3.4.6] at org.apache.ibatis.session.Configuration.getResultMap(Configuration.java:640) ~[mybatis-3.4.6.jar:3.4.6] at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getNestedResultMap(DefaultResultSetHandler.java:1011) ~[mybatis-3.4.6.jar:3.4.6] at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyNestedResultMappings(DefaultResultSetHandler.java:945) ~[mybatis-3.4.6.jar:3.4.6]
意思很明確,是ResultMap映射出現了問題,下面貼上映射代碼:sql
<resultMap type="Advertisement" id="AdvertisementResult"> <id property="id" column="id" /> <result property="title" column="title" /> <result property="imgPath" column="img_path" /> <result property="url" column="url" /> <result property="description" column="description" /> <result property="sorrt" column="sorrt" /> <result property="place" column="place" /> <result property="provinceId" column="province_id" /> <result property="cityId" column="city_id" /> <result property="advFlag" column="adv_flag" /> <result property="createUser" column="create_user" /> <result property="createTime" column="create_time" /> <result property="updateUser" column="update_user" /> <result property="updateTime" column="update_time" /> <association property="provinceId" column="id" javaType="Areas" resultMap="areasResult"/> </resultMap>
個人sql代碼:apache
<select id="findList" parameterType="Advertisement" resultMap="AdvertisementResult"> SELECT a.id , a.title , a.img_path , a.url , a.description , a.sort , s.area_name , s1.short_name FROM advertisement a LEFT JOIN areas s ON a.province_id = s.id LEFT JOIN areas s1 on a.city_id = s1.id </select>
我是把關聯表的resultMap忘記寫了,加上以後就行了,代碼以下:session
<resultMap id="areasResult" type="Areas"> <id property="id" column="id" /> <result property="areaName" column="area_name" /> <result property="parentId" column="parent_id" /> <result property="shortName" column="short_name" /> </resultMap>
主表的resultMap和副表的resuleMap Id是對應的。mybatis