English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Unterschied zwischen CrudRepository und JPARepository in Java

CrudRepository und JPA-Repository sind Interfaces der Spring Data Repository-Bibliothek. Spring Data Repository bietet durch die Bereitstellung einiger vorgegebener Finder den Zugriff auf verschiedene Ebenen der Persistenzschicht und reduziert so den Quellcode-Aufwand.

Das CrudRepository und das JPA-Repository sind Interfaces der Spring Data Repository-Bibliothek. Spring Data Repository bietet durch die Bereitstellung einiger vorgegebener Finder den Zugriff auf verschiedene Ebenen der Persistenzschicht und reduziert so den Quellcode-Aufwand.

Wir müssen dieses Repository in unserer Anwendung erweitern, um auf alle Methoden zuzugreifen, die in diesen Repositories verfügbar sind. Wir können auch neue Methoden hinzufügen, indem wir benannte Abfragen oder native Abfragen gemäß den geschäftlichen Anforderungen verwenden.

NummerSchlüsselJPA-RepositoryCrud-Repository
1HierarchieJPA erweitert CrudRepository und PagingAndSorting-RepositoryDas ursprüngliche Repository ist ein grundlegendes Interface und dient als Markierungsinterface.
2MassenunterstützungJPA bietet auch einige Methoden, die mit JPA zusammenhängen, wie z.B. das Massenlöschen von Datensätzen und das direkte Aktualisieren der Daten in die Datenbank.Es bietet nur CRUD-Funktionen, wie z.B. findOne, save und so weiter.
3PaginierungssupportDie JPA-Repository erweitert auch die PagingAndSorting-Repository. Es bietet alle Methoden, die für die Paginierung verwendbar sind.Crud-Repository bietet keine Methoden für die Implementierung von Paginierung und Sortierung.
4FallstudieJpaRepository verknüpft Ihre Repository mit der JPA-PERSISTENZTECHNIK und sollte daher vermieden werden.Wir sollten CrudRepository oder PagingAndSortingRepository verwenden, je nachdem, ob Sie Sortierung und Paginierung benötigen.

Beispiel für JpaRepository

@Repository
public interface BookDAO extends JpaRepository {
   Book findByAuthor(@Param("id") Integer id);
{}

Beispiel für CrudRepository

@Repository
public interface BookDAO extends CrudRepository {
   Book Event findById(@Param("id") Integer id);
{}