Интерфейс, предоставляющий высокоуровневые абстракции для доступа к данным, упрощающий реализацию репозиториев.
Особенности:
- Уменьшение бойлерплейта: Автоматически генерирует реализации типичных CRUD-операций.
- Соглашения по именованию методов: Позволяет определять кастомные запросы, объявляя методы с определенными названиями (например,
findByLastName(String lastName)).
- Аннотация
@Query: Позволяет писать JPQL, SQL или другие запросы непосредственно в аннотации.
- Поддержка различных источников данных: JPARepository, MongoRepository, CrudRepository и т.д.
Пример:
java