Если у меня есть два класса объектов, Group
и Person
, где существует связь один-ко-многим между Group
и Person
(то есть, человек может принадлежать не более чем одной группе, группа может иметь много людей), какой запрос jpql/hql я могу использовать, чтобы выбрать все Person
s не в Group
s?JPA/Hibernate выберите элемент не в коллекции
Что-то вроде обратной select p from Group g inner join g.people p
...
Проблема в том, что отношения односторонние. 'Person' не имеет ссылки на' Group', только наоборот. Однако HQL - это хорошо. Отредактированный вопрос, чтобы отразить это. – Tonio
Существует отношение 1: n от группы к человеку. Затем в базе данных пользователь таблицы имеет идентификатор группы как внешний ключ для группы. При правильном сопоставлении этого внешнего ключа можно получить доступ в экземпляре person - либо с отношением «много к одному», либо с использованием 'p.group.id ', как это было в примерах, или непосредственно в виде литерала, а затем использовать sth , например 'p.groupId'. Если внешний ключ еще не сопоставлен, я рекомендую его сопоставить - это намного быстрее, чем любая конструкция 'not exist' или' not in'. – Johanna
Проблема в упорядочении коллекции, поэтому мне нужна таблица соединений для отслеживания индекса заказа, а не просто столбец «group id» в «Person». – Tonio