Синтаксис HQL для извлечения из множества отношений - PullRequest
0 голосов
/ 17 мая 2018

У меня есть две сущности, Студент и Учитель, которые имеют отношения многие ко многим

Student.java:

@ManyToMany
    @JoinTable(name="CROOS_STUDENT_TEACHER", joinColumns=@JoinColumn(name="STUDENT_ID"), inverseJoinColumns=@JoinColumn(name="TEACHER_ID"))

    private Collection<Teacher> teachers = new ArrayList<Teacher>();

Teacher.java:

@ManyToMany
private Collection<Student> students= new ArrayList<Student>();

IВ настоящее время я пытаюсь получить список учеников, которые находятся под конкретным учителем, используя идентификатор учителя, например

select a from Student JOIN a.teachers p FROM Teacher where p.id = :id

, и выдал мне ошибку

Ia также немного изменилась, как удалено FROM Teacherно это все еще не работает, я мог бы по-другому это сделать?

1 Ответ

0 голосов
/ 17 мая 2018

Правильно должно быть:

select a from Student a JOIN a.teachers p where p.id = :id

Ваш запрос содержит некоторые синтаксические ошибки, такие как:

  • Два from ключевое слово внутри одного запроса

  • Вы не указали псевдоним для Student, но используете a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...