2016-12-01 5 views
0

Ich möchte für einen Lehrer Schüler bekommen, wo das Alter des Studenten größer als 18Wie fragt man die Beziehung im Spring Boot ab?

habe ich mit Laravel Rahmen zu arbeiten, wo ich dies war in der Lage zu tun, von:

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

Ist gibt es eine Möglichkeit, dies in Spring Boot ohne die mysql-Abfrage zu tun? Ich meine eine einzelne Methode von JPA Repository zu verwenden. Lassen Sie uns so etwas wie dies sagen:

teacher.getStudents().whereAgeGreaterThan(18);

Antwort

2

Ja, vorausgesetzt Sie Ihre PPV Spring Data Repo haben Sie die Abfrage erstellen können Verfahren gemäß dem Spring Data query method rules durch die Nennung des Wertes als Methode Parameter übergeben.

In Ihrem Beispiel im Innern des Studends DAO Nimmt man die Student hat ein age ein Verfahren Attribut mit dem Namen:

findByAgeGreaterThan(Integer age) 
+0

Dank, so um, dass für einen Lehrer zu holen, es so sein sollte: 'findByTeacherAndAgeGreaterThan (Integer id, Integer age); ' es gibt keine Möglichkeit, von der Relation' teacher.getStudents() 'Gebrauch zu machen? –

+1

Angenommen, Sie haben eine Entität für 'Student' und ein JPA-Repository für diese definiert, dann können Sie eine Methode mit der Signatur 'List findByTeacherIdAndAgeGreaterThan (Lange ID, Ganzzahlalter)' erstellen. Dieser spezielle Getter hilft Ihnen hier nicht, es sei denn, Sie möchten die Filterung in Ihrer Geschäftslogik durchführen. – Vaelyr

+0

danke für die Hilfe :) –

Verwandte Themen