MyBatis parameters as List

mapper write interface, you must add @Param ( "partyOrganId"), or an error occurs.
List<EChartsDO> getMemberByAge(@Param("partyOrganId") List<Long> partyOrganId);

<sql id="WhereClause">
where isdel='N'
<if test="partyOrganId!= null">
AND party_organ_id in
<foreach collection="partyOrganId" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</sql>
 <select id="getMemberByAge" resultMap="ExtResultMap" parameterType="java.util.List">
select text,count(id) count,total,ROUND(count(id)/total*100,1) percent from
(select case when TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 18 AND 29 then '18-29岁'
when TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 30 AND 39 then '30-39岁'
when TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 40 AND 49 then '40-49岁'
when TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 50 AND 59 then '50-59岁'
when TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 60 AND 69 then '60-69岁'
when TIMESTAMPDIFF(YEAR, birthday, CURDATE()) BETWEEN 70 AND 79 then '70-79岁'
when TIMESTAMPDIFF(YEAR, birthday,CURDATE ())> 80 then '80 years and older 'end as text, id,
(select count(id) from common_party_member <include refid="WhereClause" />) total
from common_party_member <include refid="WhereClause" />
)t GROUP BY text
</select>

Guess you like

Origin www.cnblogs.com/yyjspace/p/11605968.html