user_activities
列、user_id
、activity_id
およびを含むテーブルがありますcomments
。activity_id
とuser_id
は両方とも外部キーであり、アクティビティ テーブルには別の属性がありますactivity_name
。特定の行をフェッチするには、user_id
次activity_name
を使用できます。
FROM UserActivityMapping AS mapping
INNER JOIN mapping.activityId AS activity
WHERE userId = <something> AND activity.activityName = <something>
ここまでは順調ですね。Pair
ここで、の のリストが与えられた<UserId, ActivityName>
ので、そのような行をすべて削除したいと思います。このリストは非常に大きくなる可能性があります.. 600-700 アイテムのように大きい. 今のところ、私が生成できるクエリの大きな混乱のように見えます:
DELETE ...
WHERE (userId = userId[0] AND activity.activityName = activityName[0]) OR
(userId = userId[1] AND activity.activityName = activityName[1]) OR
...
ここでは明らかに最善のアプローチではありません。どうすればいいですか?このようなものは素晴らしいでしょう:
"WHERE (userId, activityId) in :userActivityList".setParameterList(
new List<Pair<String, String>>()
);
どんな助けでも大歓迎です。