Message
提供されたリストにあり、現在のユーザーによるものGroups
ではないをクエリする必要があります。Deactivated
プロパティとエンティティを説明するためのいくつかの擬似コードを次に示します。
class Message {
private int messageId;
private String messageText;
}
class Group {
private String groupId;
private int messageId;
}
class Deactivated {
private String userId;
private int messageId;
}
これが私が何を照会する必要があるかについての考えです、それは私がどのように行うべきかわからない最後のAND節です(私は複合NOT IN
式を作りました)。非アクティブ化されたメッセージをuserIdでフィルタリングすると、複数のmessageIdが発生する可能性があります。行のサブセットにmessageIdが含まれていないかどうかを確認するにはどうすればよいですか?
SELECT msg FROMメッセージメッセージ、グループグループ、非アクティブ化非アクティブ どこ group.messageId = msg.messageId AND(group.groupId ='groupA' OR group.groupId ='groupB' OR ...) AND('someUserId'、msg.messageId)NOT IN(unactive.userId、unactive.messageId)
注:...
事前にgroupIdの数がわからないため、そこにあります。私はそれらをとして受け取るCollection<String>
ので、それらをトラバースして、JPQLに動的に追加する必要があります。