我有一个 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>
Run Code Online (Sandbox Code Playgroud)
我所坚持的部分是获取动态的集合大小。那么我怎样才能获得集合大小,以便我可以正确填写“???” 价值?
您可以Collection#size()使用 OGNL 表达式调用该方法。IE
GROUP BY gallery_id HAVING COUNT(gallery_id) = ${userIdList.size}
Run Code Online (Sandbox Code Playgroud)
请注意,这#{userIdList.size}在这里不起作用,因为 in 中的表达式#{}是由 MyBatis 的内部表达式解析器解析的,而不是由 OGNL 解析的。
| 归档时间: |
|
| 查看次数: |
4056 次 |
| 最近记录: |