JPQL для сущностей без элементов в отношении ManyToMany

Простой вопрос JPA/JPQL. У меня есть объект с отношением ManyToMany:

@Entity
public class Employee {      
  @ManyToMany
  @JoinTablename="employee_project"
      joinColumns={@JoinColumn(name="employee_id"}
      inverseJoinColumns={@JoinColumn(name="project_id"})
  private List<Project> projects;

Что такое запрос JPQL для возврата всех сотрудников, у которых нет проектов?


person Tim    schedule 06.10.2009    source источник


Ответы (2)


JQPL имеет специальный оператор сравнения IS [NOT] EMPTY для проверки того, что коллекция пуста:

SELECT e FROM Employee e WHERE e.projects IS EMPTY
person Mikko Maunu    schedule 29.08.2012

person    schedule
comment
Хммм. Я получаю сообщение об ошибке с первым (Описание исключения: Синтаксическая ошибка при анализе запроса... с использованием Eclipselink), но второе, кажется, работает так, как рекламируется. - person Tim; 07.10.2009
comment
Первый недействителен JPQL... EXISTS требует, чтобы следовал подзапрос - person DataNucleus; 07.10.2009
comment
@ Энди, ты прав, elements(), похоже, не входит в спецификацию JPA, это расширение Hibernate. - person ChssPly76; 07.10.2009