Получить дочернюю сущность, используя родительскую сущность в JPA - PullRequest
0 голосов
/ 26 марта 2020

У меня есть данные ниже сущности, и я хочу выполнить некоторые запросы, и я не уверен, как это сделать в JPA.

Школа. java

@Data
@Builder
public class School {
    private String schoolName;
    private int schoolId;
    private List<Grade> grades;
}

Оценка. Java

@Data
@Builder
public class Grade {
    private String grade;
    private int gradeId;
    private List<Student> students;
}

Студент. java

@Data
@Builder
public class Student {
    private String studentName;
    private int studentId;
    private List<Subject> subjects;
}

Тема. java

@Data
@Builder
public class Subject {
    private String subjectName;
    private int subjectId;
}

Мне нужно выполнить эти запросы:

  1. Получить всех студентов по schoolId
  2. Получить всех студентов по gradeId
  3. Получить всех студентов по schoolId & gradeId

Как этого достичь?

1 Ответ

0 голосов
/ 26 марта 2020

Во-первых, пожалуйста go через JPA документацию немного. Ищите Native Queries.

Например, для первого:

1) Получить всех студентов по schoolId

@Query("SELECT s FROM Student s WHERE s.school_id = :schoolId")
List<Student> findStudentsBySchoolId(@Param("schoolId") Long schoolId);

Учитывая, что у вас есть следующие :

  • Отображение School в Student с отображением столбца schoolId.
  • И поиск репозитория для ученика, в котором вышеуказанный метод будет go. Вы также можете расширить JPARepository.

Также обратите внимание

List<Student> findBySchool_SchoolId(Long id);

Это не очень хорошая идея называть ваши методы подчеркиванием в Java. Смотрите это

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