извлечение данных из таблицы сопоставления - PullRequest
0 голосов
/ 16 мая 2018

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

и таблица соединений между

Student.java:

@ManyToMany
    @JoinTable(name="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>();

Я использую критерии для поиска всех студентов, как:

studentList = session.createCriteria(Student.class).list();

Но теперь я хочу получить список учеников, которым меньше Teacher id=2, а таблица сопоставления STUDENT_TEACHER не является классом, как ее можно найти в этом случае?

1 Ответ

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

Вы можете использовать HQL, например,

SELECT s FROM Student s WHERE s.teachers.id = 2

Кроме того, обратная сторона отношения many to many отсутствует в вашем классе учителя.Это должно быть отмечено ниже:

@ManyToMany(mappedBy="teachers")
private Collection<Student> students= new ArrayList<Student>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...