90963


kotlin, spring-boot, mybaticでのForeachの処置がうまくいかないです。

以下のSQLを実行しても "#{id} が見つかりません" というエラーになってしまいます。どなたかご教授願えますと幸いです。

具体的なエラーメッセージ

[code]

    nested exception is org.apache.ibatis.binding.BindingException: Parameter 'id' not found. Available parameters are [orderIds, param1]
    
[/code]

実行したSQL

[code]

    @Select(
        """
            SELECT 
                COUNT(*)
            FROM 
                order
            WHERE 
                order_id IN 
            <foreach item="id" collection="orderIds" open="(" separator="," close=")" >
                #{id}
            </foreach>
        """
    )
    fun findByOrderIds(@Param(value = "orderIds") orderIds: List<String>): Int
    
[/code]


CC BY-SA 4.0
2022-09-06T06:21:39.807
90958
2022-09-06T16:58:25.120
2022-09-06T16:58:25.120
3060
30328
question
spring kotlin
Kotlin, Spring, mybatisでのForeachがうまくいかない


[`script` タグ](https://mybatis.org/mybatis-3/ja/dynamic-sql.html#script)
で囲う必要があります:

[code]

        @Select(
            """
                <script>
                    SELECT 
                        COUNT(*)
                    FROM 
                        `order`
                    <where>
                        <foreach item="id" collection="orderIds" open="order_id IN (" separator="," close=")" >
                            #{id}
                        </foreach>
                    </where>
                </script>
            """
        )
        fun findByOrderIds(@Param(value = "orderIds") orderIds: List<String>): Int
    
[/code]


CC BY-SA 4.0
2022-09-06T13:09:03.270
90963
2022-09-06T13:18:16.620
2022-09-06T13:18:16.620
2808
2808
90958
answer