CrudRepository vs JPARepository

13/09/2018

36

Qual a diferença entre CrudRepository e JpaRepository???
Responder

Post mais votado

13/09/2018

Olá Gabriel.
A diferença é a hierarquia das interfaces.
A estrutura do Spring-Data é formada assim: Repository > CrudRepository > PagingAndSorting

Depois nós temos os projetos individuais do Sprind-Data, como o Spring-Data JPA e o Spring-Data MongoDB

Nesse caso, o Spring-Data JPA terá interface JpaRepository e o o Spring-Data MongoDB a interface MongoRepository

Essas duas últimas são consideradas interfaces mais sofisticadas já que os objetos que eles retornam se adequam melhor ao projeto. Por exemplo, o método findAll() em JpaRepository retorna java.util.List:
List<T> findAll();

Já o mesmo método em PagingAndSorting e CrudRepository retornam java.lang.Itarable
Iterable<T> findAll(Sort var1);

Além disso, JpaRepository estende PagingAndSorting, que a interface para paginação. Já CrudRepository não estende PagingAndSorting, assim você não teria acesso aos métodos padrões de paginação.

O ideal é você dar uma olhada no código fonte de cada uma dessas interfaces para ver qual estende qual e quais métodos cada uma oferece.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira