HQL JOIN Проблема - PullRequest
       7

HQL JOIN Проблема

0 голосов
/ 08 марта 2011

У меня есть 2 класса: ClassRoom , Студент

Class Student {
 private Integer id;
 private ClassRoom classRoom;
 private String name;

 /* GETTERS AND SETTER */
}


Class ClassRoom{
 private Integer id;
 private Set<Student> students;

 /* GETTERS AND SETTER */
}

Что такое HQL для выбора всех ClassRooms, у которых есть ученики с именем John ?

Ответы [ 2 ]

0 голосов
/ 09 марта 2011

Вариант 1:

select distinct ClassRoom
from Student
where Name = 'John'

Вариант 2:

from ClassRoom c
where c in (select ClassRoom
            from Student
            where Name = 'John')
0 голосов
/ 08 марта 2011

Попробуйте

from ClassRoom inner join Student as student where student.name = 'John'

Вам нужно будет использовать полностью определенные (с пространствами имен) имена для вашего класса.

Кроме того, если имя исходит от клиента, вам следует использоватьпараметр (например: имя)

...