1. 程式人生 > >在select parameterType自定義型別巢狀迴圈List資料

在select parameterType自定義型別巢狀迴圈List資料

因為要做內容統計資訊,就將要傳入的引數放在一個Bean中去了,有一個欄位為狀態值,型別為List型別,但一直執行不成功,
最後發現的問題是 <![CDATA[ ]]>用這個符號將foreach包含在內了,所以將foreach的雙引號也給轉議了。
<![CDATA[ ]]>
只能在需要轉義的地方才使用,在邏輯處理位置是不能使用的。

table.xml程式碼如下

    <select id="query" resultMap="BaseResultMapBySubscribe" parameterType="com.dao.tableDao">
<![CDATA[ select DATE_FORMAT(end_time,#{dateFromat}) as date, '0' as uncount, count(*) as count from table where 1 = 1 AND DATE_FORMAT(start_time,#{dateFromat})>=#{startDate} AND DATE_FORMAT(end_time,#{dateFromat}) <=#{endDate} AND state IN ]]>
<foreach collection="subscribeStates" item="item" index="index" open="(" separator="," close=")" > #{item} </foreach> <![CDATA[ group by DATE_FORMAT(end_time,#{dateFromat}) UNION ALL select DATE_FORMAT(end_time,#{dateFromat}) as date, count(*) as uncount, '0' as count from table where DATE_FORMAT(start_time,#{dateFromat})>=#{startDate} and DATE_FORMAT(end_time,#{dateFromat}) <=#{endDate} AND state IN ]]>
<foreach collection="unSubscribeStates" item="item" index="index" open="(" separator="," close=")" > #{item} </foreach> <![CDATA[ group by DATE_FORMAT(end_time,#{dateFromat}) ]]> </select>