项目场景:
在mapper中遍历复杂对象 如 private List<Map<String,Object>> time;
//此对象是list和map的组合,
//存储数据的格式 "time":[{"year":2021,"quarter":[0,3]},{"year":2022,"quarter":[0,3]}],
解决方案:
<if test="target.time != null and target.time.size()>0">
and
<foreach collection="target.time" item="item" open="(" separator="or" close=")">
<foreach collection="item.entrySet()" index="key" item="value" open="(" close=")">
<if test="key == 'year'">
year = #{value}
</if>
<if test="key == 'quarter'">
and quarter in
<foreach collection="value" item="quarter" open="(" separator="," close=")">
#{quarter}
</foreach>
</if>
</foreach>
</foreach>
</if>
展现的结果
AND ((year = 2021 AND quarter IN (0, 3)) OR (year = 2022 AND quarter IN (0, 3)))
版权声明:本文为qq_29373343原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。