2016-12-01 3 views
0

Я хочу, чтобы получить студентов для учителя, где возраст студента больше, чем 18.как запросить отношение весной загрузки?

Я использовал для работы с каркасом Laravel, где я был в состоянии сделать это:

$AdultStudents = $teacher->students->where('age'>18);

ли есть ли способ сделать это в Spring Boot без использования запроса mysql? Я имею в виду использование одного метода из репозитория JPA. Скажем, что-то вроде этого:

teacher.getStudents().whereAgeGreaterThan(18);

ответ

2

Да, предположим, что у вас есть JPA Spring Data Repo можно построить запрос методом именования согласно Spring Data query method rules передавая значение в качестве параметра метода.

В вашем примере внутри Studends DAO, предполагающей Student имеет age атрибут метод с именем:

findByAgeGreaterThan(Integer age) 
+0

спасибо, поэтому для того, чтобы получить, что для учителя, это должно быть так: 'findByTeacherAndAgeGreaterThan (Integer id, Integer age); ' нет способа получить доступ из отношения' teacher.getStudents() '? –

+1

Предполагая, что у вас есть сущность, определенная для 'Student', и репозиторий JPA для этого, вы можете построить метод с подписью« Список findByTeacherIdAndAgeGreaterThan (Long id, Integer age) ». Этот конкретный геттер вам не поможет, если вы не хотите выполнять фильтрацию в своей бизнес-логике. – Vaelyr

+0

спасибо за помощь :) –

Смежные вопросы