Non, il n'y a pas de différence entre eux, ils exécutent exactement la même requête, la All partie est ignoré par le Printemps des Données lors de la déduction de la requête à partir du nom de la méthode. Le seul important est la By mot-clé, tout ce qui suit, il est traité comme un nom de champ (à l'exception des autres mots-clés comme OrderBy qui incidentially peut conduire à une étrange à la recherche de la méthode des noms comme findAllByOrderByIdAsc).
Cela signifie quelque chose comme ceci est parfaitement valide:
Mise à jour: je n'avais jamais vu aucune description officielle de ce comportement dans la documentation, mais dans un blog à propos de la prochaine version 2.0 de Printemps de Données (Kay), il a expliqué:
Printemps des Données la méthode d'analyse utilise le préfixe des mots-clés comme find, exists, count, et delete et une terminaison de By mot-clé. Tout ce que vous mettez entre find et By rend votre nom de méthode plus expressif et n'affecte pas la requête de dérivation.
Non, la méthode qui vous écrit, c'est à partir de JPASpecificationExecutor. Je parle juste JpaRepository. Je peux créer de la méthode findAllByFirstName(String prenom) et il aura un travail semblable à findByFirstName. Dans cette question, je suis en train d'essayer de comprendre la différence entre eux.
Non, il n'y a pas de différence entre eux, ils exécutent exactement la même requête, la
All
partie est ignoré par le Printemps des Données lors de la déduction de la requête à partir du nom de la méthode. Le seul important est laBy
mot-clé, tout ce qui suit, il est traité comme un nom de champ (à l'exception des autres mots-clés commeOrderBy
qui incidentially peut conduire à une étrange à la recherche de la méthode des noms commefindAllByOrderByIdAsc
).Cela signifie quelque chose comme ceci est parfaitement valide:
Et exécuter exactement la même requête SQL:
ou
Mise à jour: je n'avais jamais vu aucune description officielle de ce comportement dans la documentation, mais dans un blog à propos de la prochaine version 2.0 de Printemps de Données (Kay), il a expliqué:
Utile mise à jour!
OriginalL'auteur Robert Hunt
findBy méthode est utilisée si nous voulons trouver par nom ou par d'autres critères comme
findByFirstName(String firstName);
findAll méthodes d'trouve généralement en fournissant de spécification
Veuillez voir les docs ci-dessous pour plus de clarté:
http://docs.spring.io/spring-data/jpa/docs/1.4.3.RELEASE/reference/html/jpa.repositories.html
OriginalL'auteur shankarsh15