Создать запрос JPA для поля внешнего ключа - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь получить список учеников, используя идентификатор учителя, который является внешним ключом в генерации таблицы Student с использованием @JoinColumn, но с ошибками.

Student.java отношение поля класса:

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name = "teacher_id", nullable=false)
private Student student;

Teacher.java отношение полей класса:

@OneToMany(
        mappedBy = "student",
        cascade = CascadeType.ALL,
        orphanRemoval = true
)
private List<Student> StudentsList = new ArrayList<>();

StudentResource.java:

@GetMapping("/student/details/{teacherId}")
@Timed
public List<Student> getStudentDetails(@PathVariable Long teacherId) {
    log.debug("REST request to get Student details: {}", teacherId);
    List<Student> studentDetails= studentRepository.findByTeacherID(teacherId);
    return studentDetails;
}

StudentRepository.java:

List<Student> findByTeacherID(Long teacherId);

Есть ли способ, которым я могу сопоставить поле напрямую, а не весь объект?

1 Ответ

0 голосов
/ 24 октября 2018

Есть ли способ сопоставить поле непосредственно вместо целого объекта?

Предполагая, что код Student выглядит так, как можно было бы ожидать *и не так, как вы опубликовали, это должно работать:

@Query("select s.id from Student s where s.teacher.id = :id") 
List<Long> findByTeacherId(Long id);

* т.е. Student имеет атрибут teacher, ссылающийся на Teacher, и атрибут id с именем id изтип Long.

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