Ich bin mir nicht sicher, ob ich mit dieser Aufgabe die Grenzen der Methodenabfrage erreicht habe. Ich habe zwei Tabellen, eine User
Tabelle und eine Password
Tabelle. A User
kann mehrere Password
s haben (wobei die neueste die aktuelle ist).Methodenabfrage mit mehreren Tabellen einschließlich Bestellung?
Ich möchte eine Methodenabfrage in meinem User
Repository machen, um eine "aktuelle" Password
für einen Benutzernamen abzurufen.
In SQL es so etwas wie dieses
"Select FIRST(*) from Passwords INNERJOIN Users ON Users.id=Passwords.userId WHERE Users.username=%s ORDER BY Passwords.created DESC"
aussehen würde, was ich als Methode Abfrage versucht haben, ist findFirstPasswordOrderByPasswords_CreatedByUsers_Username(String username)
die mir eine Ausnahme gibt:
No property byUsers found for type long! Traversed path: UsersEntity.passwords.created.
I don‘ Ich weiß, warum es immer noch auf das Feld created
zeigt. Ist das zu viel für Methodenabfragen? Oder mache ich es einfach falsch?
Bedeutet dies, dass ich begrenzt, um 'UserEntities' nur von meinem 'UserRepository' zu erhalten? –
Ja, Abfragemethoden in Repositories sind auf Entitäten beschränkt, mit denen das Repository verbunden ist. Sie können jedoch eine Methode mit einer benutzerdefinierten @ Query-Annotation verwenden, die die gewünschte Abfrage enthält. –