mybatis 查询中的集合大小
Collection size in mybatis query
我有一个 MyBatis 查询,如下所示:
<if test="userIdList != null and userIdList > 0">
AND galleries.id IN (
SELECT gallery_id
FROM gallery_users
WHERE gallery_id IN (
<foreach collection="userIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
)
GROUP BY gallery_id HAVING COUNT(gallery_id) = ???
)
</if>
我坚持的部分是获取动态的集合大小。那么我怎样才能获得集合大小,以便我可以正确填写“???”值?
您可以使用 OGNL 表达式调用 Collection#size()
方法。即
GROUP BY gallery_id HAVING COUNT(gallery_id) = ${userIdList.size}
注意 #{userIdList.size}
在这里不起作用,因为 #{}
中的表达式是由 MyBatis 的内部表达式解析器解析的,而不是由 OGNL 解析的。
我有一个 MyBatis 查询,如下所示:
<if test="userIdList != null and userIdList > 0">
AND galleries.id IN (
SELECT gallery_id
FROM gallery_users
WHERE gallery_id IN (
<foreach collection="userIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
)
GROUP BY gallery_id HAVING COUNT(gallery_id) = ???
)
</if>
我坚持的部分是获取动态的集合大小。那么我怎样才能获得集合大小,以便我可以正确填写“???”值?
您可以使用 OGNL 表达式调用 Collection#size()
方法。即
GROUP BY gallery_id HAVING COUNT(gallery_id) = ${userIdList.size}
注意 #{userIdList.size}
在这里不起作用,因为 #{}
中的表达式是由 MyBatis 的内部表达式解析器解析的,而不是由 OGNL 解析的。