JpaRepository vs CRUDRepository findAll
J'ai une question simple: pourquoi JpaRepository est de retour Liste d'entités, mais CrudRepository retourne objet iterable entités?
Est-ce fait exprès? Je suppose que c'est parce que CrudRepository est plus interface générique, et il peut y avoir certains référentiel spécifique qui renvoie Itératif.
Il rend plus difficile à utiliser CrudRepository sans l'aide spécifique JpaRepository..
Grâce
Je ne vois pas pourquoi c'est plus difficile, pouvez-vous donner un exemple ?
Dire, je veux obtenir la taille du ou des articles retournés, en cas de CrudRepository je vais devoir compter manuellement tout(hasnext) compteur++, sur la liste, je peut simplement appeler size(). Il y a d'autres choses semblables.
Dire, je veux obtenir la taille du ou des articles retournés, en cas de CrudRepository je vais devoir compter manuellement tout(hasnext) compteur++, sur la liste, je peut simplement appeler size(). Il y a d'autres choses semblables.
OriginalL'auteur Vadim Kirilchuk | 2015-08-07
Vous devez vous connecter pour publier un commentaire.
La classe
CrudRepository
fait partie de la Printemps de Données de projet de mise en commun et est recommandé d'interface pour étendre (voir Oliver Gierke réponse) quel que soit le magasin de données utilisé.La raison
CrudRepository
méthodes de retourIterable
et pasList
(ouSet
), c'est parce certaines banques de données à autoriser la diffusion des résultats et à l'aide d'unCollection
type entraînerait une perte de fonctionnalité de ces magasins.Vérifiez le dernier lien dans ma réponse où le Ressort des Données de l'équipe a permis de clarifier la question et donné des exemples de banques de données qui fournissent la prise en charge du streaming.
Pour répondre aux préoccupations que vous avez mentionné dans votre question, vous pouvez toujours avoir
interface BaseRepository<T, ID> extends CrudRepository<T, ID> { @Override List<T> findAll(); }
. C'est aussi ce queJpaRepository
. De cette façon, vous pouvez coller à pour le générique deCrudRepository
et toujours obtenir la même fonctionnalité que vous recherchez (Collection.size()
, etc.).Le dernier commentaire est génial, va essayer de le faire, merci!
OriginalL'auteur manish
JpaRepository extends PagingAndSortingRepository
et
PagingAndSortingRepository extends CrudRepository
.Cela permet
JpaRepository
plus spécifique, le type de retour deItrable
qui estList
OriginalL'auteur Rafik BELDI