JPA JPQL: выберите элементы, когда атрибут элемента (список/набор) содержит другой элемент

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

Я хочу выбрать все документы, в которых у аксессуаров есть определенный пользователь. У меня только минимальный опыт работы с SQL и отсутствие опыта работы с JPQL. Итак, как это сделать?

заблаговременно

Ответ 1

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

Должно быть то, что вам нужно, и это проще, чем объединение таблиц. Просто не забудьте использовать пользователя в качестве параметра, а не использовать его id:

query.setParameter("user", user);

Ответ 2

select distinct d from Document d inner join d.accessors a where a.id = :id

Вам следует узнать, как работают SQL-соединения, а затем узнать, как использовать объединения в JPQL. Это важно. Вы найдете множество обучающих онлайн. Google - ваш друг.