Получить доступ

Что даёт объявление интерфейса, наследующего JpaRepository?

JuniorSpring Data JPA и HibernateSpring Data
Ещё спрашивают так:
  • Зачем наследовать JpaRepository?
Коротко

Реализацию генерирует Spring Data: CRUD (save, findById, delete), пагинация и сортировка, и запросы, выведенные из имён методов (findByEmail).

  • Свой запрос — @Query
  • Не нужно писать DAO-класс
  • Под капотом — EntityManager и Hibernate

А ещё Опечатка в имени метода видна при старте

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Имя метода разбирается по правилам, и findByEmailAndStatus превращается в соответствующий запрос без единой строки кода. Когда правил не хватает, запрос задают явно через @Query. Полезно знать границу удобства: чем сложнее условие, тем длиннее и хуже читается имя метода — начиная с некоторого момента честнее написать запрос явно. Схему таблиц Spring Data не создаёт: этим занимается генерация схемы Hibernate или, что правильнее для боевых систем, инструмент миграций.

Что хотят услышать

  • Что генерируется.
  • Запросы по имени метода и @Query.

Частые ошибки

  • Строить метод с именем из десятка условий вместо явного запроса.
  • Полагаться на автоматическую генерацию схемы в production.

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓Spring Data сам создаёт реализацию с базовыми операциями, а методы вида findByEmail превращает в запросы по их имени
  • ✗Нужно самостоятельно написать класс-реализацию этого интерфейса
  • ✗Создаётся таблица в базе данных по описанию интерфейса
  • ✗Все методы автоматически становятся транзакционными на запись

Что спросят дальше

  • Когда стоит перейти от имени метода к @Query?
  • Почему миграции схемы делают отдельным инструментом?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем