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 - ваш друг.