Je ne suis pas sûr si j'atteins les limites de la requête de méthode avec cette tâche. J'ai deux tables, une table User
et une table Password
. Un User
peut avoir plusieurs Password
s (où le plus récent est le courant).Requête de méthode avec plusieurs tables, y compris la commande?
Je voudrais faire une requête de méthode dans mon dépôt User
pour aller chercher un "courant" Password
pour un nom d'utilisateur.
Dans SQL, il ressemblerait à quelque chose comme ça
"Select FIRST(*) from Passwords INNERJOIN Users ON Users.id=Passwords.userId WHERE Users.username=%s ORDER BY Passwords.created DESC"
Ce que j'ai essayé comme requête de méthode est findFirstPasswordOrderByPasswords_CreatedByUsers_Username(String username)
qui me donne une exception:
No property byUsers found for type long! Traversed path: UsersEntity.passwords.created.
Je ne Je sais pourquoi il pointe toujours sur le champ created
. Est-ce trop pour les requêtes de méthode? Ou est-ce que je le fais tout simplement faux?
Est-ce que cela veut dire, que je suis limité à obtenir seulement UserEntities de mon UserRepository? –
Oui, les méthodes de requête dans les référentiels sont limitées à l'entité, auquel le référentiel est connecté. Cependant, vous pouvez utiliser la méthode avec l'annotation personnalisée @Query contenant la requête que vous voulez. –