Основная часть работы в
Spring Data строится вокруг интерфейса
Repository. Это
маркерный интерфейс. От него наследуются интерфейсы-специализации, которые уже содержат методы для работы с сущностями базы данных. Все эти интерфейсы параметризуются двумя типами: самой сущности и её идентификатора.
CrudRepository – базовый набор операций над сущностями: создание, чтение, изменение и удаление (
CRUD).
PagingAndSortingRepository – добавляет к CRUD возможность постраничной загрузки данных с определенной сортировкой.
JpaRepository – расширение
PagingAndSortingRepository, полноценно реализующее Java Persistence API. Добавляет ряд методов, таких как например flush и deleteInBatch.
MongoRepository – расширение
PagingAndSortingRepository, специфичное для MongoDB.
Вспомогательные методы, специфичные для конкретной модели данных, добавляются в пользовательские интерфейсы-наследники.
Основываясь на именах добавляемых методов, фреймворк сам создаёт их реализацию.