他のエンティティのリストを含むエンティティがあります。たとえば、それは Address エンティティのリストを持つ Person である可能性があります。アドレスは 1 人に固有のものではありません。(実際にはDBの真ん中にある結合テーブルとの多対多の関係です)
ID X の住所を持っていないすべての人を検索しようとしています。
(これは、例の自明性のために意味をなさないかもしれません。私の現実の世界では、そうです:))
名前付きクエリは次のとおりです。
SELECT p FROM Person p left join fetch p.addresses a WHERE p.addresses IS EMPTY OR a.id != :addressId
addressId は、渡すアドレスの ID です
私の問題は、例で最もよく説明されています
- 個人 1 は住所 1 と住所 2 を持っている可能性があります。
- 個人 2 は住所 2 を持っている可能性があります
- 個人 3 は住所 3 を持っている可能性があります
そして今、望ましい結果
- アドレス 1 を渡すと、person2 と person 3 が返されます
- アドレス 3 を渡すと、person1 と person 2 が返されます
- 住所 2 を渡すと、人 3 が戻ってきてほしい
現在、アドレス 1 を渡すと、3 つすべてが返されます。これは、人 1 もアドレス 2 を持っているためだと思います。これは、クエリを通過することを意味します。
リスト内のIDを検索する方法を知っている人はいますか?それが要素のいずれかに存在する場合、それを返さないのですか?
これが理にかなっていることを願っています。そうでない場合は、詳細を提供してみてください
ありがとう