web-dev-qa-db-ja.com

JPA JPQL:アイテムの属性(リスト/セット)に別のアイテムが含まれている場合にアイテムを選択

public class Document extends Model {
... 
@ManyToMany
public Set<User> accessors;
...
}

アクセサーが特定のユーザーを含むすべてのドキュメントを選択したい。 SQLの経験は最小限で、JPQLの経験はありません。それを行うにはどうすればよいですか?

前もって感謝します

18
fea17e86
SELECT d FROM Document AS d WHERE :user MEMBER OF d.accessors

必要なものであり、テーブルを結合するよりも簡単です。 IDを使用する代わりに、ユーザーをパラメーターとして使用することを忘れないでください。

query.setParameter("user", user);
44
rhlobo
select distinct d from Document d inner join d.accessors a where a.id = :id

SQL結合の仕組みを学び、JPQLで結合を使用する方法を学ぶ必要があります。それは不可欠です。たくさんのチュートリアルがオンラインで見つかります。グーグルはあなたの友達です。

21
JB Nizet