原来写的mapper方法:
List<InterCityTeam> queryTeamsByParam(@Param("cityId") Integer cityId, @Param("supplierId") Integer supplierId, @Param("teamId")Integer teamId, @Param("teamIdList")List<Integer> teamIdList, @Param("cityIds") Set<Integer> cityIds, @Param("supplierIds") Set<Integer> supplierIds);
对应的方法:
<select id="queryTeamsByParam" resultMap="BaseResultMap" > select <include refid="Base_Column_List" /> from inter_city_team where 1=1 <if test="cityId != null" > AND city_id = #{cityId,jdbcType=INTEGER} </if> <if test="supplierId != null" > and supplier_id = #{supplierId,jdbcType=INTEGER} </if> <if test="teamId != null" > and id = #{teamId,jdbcType=INTEGER} </if> <if test="teamIdList != null and teamIdList.size() > 0" > and id in <foreach collection="teamIdList" open="(" close=")" item="id" separator="," > #{id} </foreach> </if>
<if test="cityIds != null and cityIds.size() > 0" >
and city_id in
<foreach collection="cityIds" open="(" close=")" item="cityId" separator="," >
#{cityId}
</foreach>
</if>
<if test="supplierIds != null and supplierIds.size() > 0" >
and supplier_id in
<foreach collection="supplierIds" open="(" close=")" item="supplierId" separator="," >
#{supplierId}
</foreach>
</if>
ORDER BY update_time DESC
</select>
然后发现当传入cityId时候死活出不来数据,最后没办法就一直调试。最后发现把cityId换个别名就可以了。猜测是不是和我在force里面定义的item也叫cityId 有关。
<select id="queryTeamsByParam" resultMap="BaseResultMap" > select <include refid="Base_Column_List" /> from inter_city_team where 1=1 <if test="cityIdParam != null" > AND city_id = #{cityIdParam,jdbcType=INTEGER} </if> <if test="supplierId != null" > and supplier_id = #{supplierId,jdbcType=INTEGER} </if> <if test="teamId != null" > and id = #{teamId,jdbcType=INTEGER} </if> <if test="teamIdList != null and teamIdList.size() > 0" > and id in <foreach collection="teamIdList" open="(" close=")" item="id" separator="," > #{id} </foreach> </if> <if test="cityIds != null and cityIds.size() > 0" > and city_id in <foreach collection="cityIds" open="(" close=")" item="cityId" separator="," > #{cityId} </foreach> </if> <if test="supplierIds != null and supplierIds.size() > 0" > and supplier_id in <foreach collection="supplierIds" open="(" close=")" item="supplierId" separator="," > #{supplierId} </foreach> </if> ORDER BY update_time DESC </select>