【问题标题】:Collection size in mybatis querymybatis查询中的集合大小
【发布时间】:2019-11-01 04:11:56
【问题描述】:

我有一个如下所示的 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>

我坚持的那部分是获取动态的集合大小。那么如何获得集合大小以便我可以正确填写'???'价值?

【问题讨论】:

  • 你的意思是像${userIdList.size}
  • @ave 看起来可能就是这样。如果您愿意,请将其作为答案,一旦有机会接受,我将接受。

标签: mybatis


【解决方案1】:

您可以使用 OGNL 表达式调用 Collection#size() 方法。即

GROUP BY gallery_id HAVING COUNT(gallery_id) = ${userIdList.size}

请注意,#{userIdList.size} 在这里不起作用,因为 #{} 中的表达式是由 MyBatis 的内部表达式解析器而不是 OGNL 解析的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    相关资源
    最近更新 更多