mybatis的映射文件當入參時Map時應注意,還有多個入參用@Param註解出現綁定失敗時

<select id="findPostsBetweenRange" parameterType="java.util.Map" resultMap="PostResultMap">
    SELECT
        p.id as post_id,
        p.title as post_title,
        p.body as post_body,
        p.date_created as post_date_created,
        p.comment_count as post_comment_count,
        p.hit_count as post_hit_count,
        u.id as user_id,
        u.username as user_username,
        u.avatar_location as user_avatar_location,
        c.name as category_name,
        c.display_name as category_display_name
    FROM T_POST p
    LEFT JOIN T_USER u ON p.user_id = u.id 
    LEFT JOIN T_CATEGORY c ON p.category_id = c.id 
    WHERE p.date_created BETWEEN ${startDateStr} AND ${endDateStr}

    ORDER BY p.date_created DESC;
</select>

parameterType用Map的全包名java.util.Map,取map中的值時不能用#{},要用${}.因爲#{} 會自動加上"" 這樣是獲取不到value值的。

還有:在springboot中mybatis-springboot-starter不知道從哪個版本開始,當多個入參時用@Param註解會出現綁定參數失敗,即找不到。所以要用Map或實體類將參數封裝起來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章