Mybatisのforeachで複数列指定のIN句をどのようにかけばよいか苦戦しています。
DBはDB2です。
具体的には下記のようなSQLを動的に生成したいです。
実現したいSQL
SQL
1SELECT 2 ユーザー名 3FROM 4 ユーザー情報テーブル 5WHERE 6 (ユーザーID親, ユーザーID枝) IN (VALUES ('001','01'),('002','01'))
Javaからは下記のようなVOのリスト(List<User>)を渡します。
SQLに渡すVO
Java
1 2public class User { 3 4private String userIdOya; 5 6private String userIdEda; 7 8}
上記を踏まえて以下のように書いてみたのですが、どうも違うような気がします。。。
ちなみにまだ動作確認できる環境がありません。
Mapper.xml
Mapper.xml
1<select id="selectUserName" parameterType="User" resultType="java.lang.String"> 2 SELECT 3 ユーザー名 4 FROM 5 ユーザー情報テーブル 6 WHERE 7 (ユーザーID親, ユーザーID枝) IN (VALUES 8 <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> 9 #{item.userIdOya}, 10 #{item.userIdEda} 11 </foreach> 12</select>
どなたかご教授お願いいたします。
回答1件
あなたの回答
tips
プレビュー