Этап 4 из 10

Данные и транзакции

Основа

Spring Data JPA и Hibernate, @Transactional и его ловушки.

Слой данных — место, где Spring-приложения чаще всего теряют производительность и корректность: N+1, длинные транзакции, неработающий @Transactional, неожиданные flush.

Темы этапа

Вопросы с собеседований

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

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

Полный разбор
Что даёт Spring Data JPA?Middle

Объявляете интерфейс, наследующий JpaRepository, — Spring создаёт реализацию с CRUD, пагинацией и сортировкой. Запросы — по имени метода (findByEmailAndStatus), через @Query (JPQL или SQL) или Specification.

Полный разбор
Почему изменение JPA-сущности внутри @Transactional сохраняется в БД без явного вызова save()?Middle

Dirty checking: сущность, загруженная в транзакции, — managed; при flush (перед коммитом) Hibernate сравнивает её поля со снимком и сам отправляет UPDATE изменённых полей. save() не нужен.

Полный разбор
Список из 100 заказов рендерится вместе с покупателем каждого, и в логе видно 101 SQL-запрос. Какие способы исправят проблему?Middle

JOIN FETCH в @Query, @EntityGraph на методе репозитория или пакетная загрузка (hibernate.default_batch_fetch_size). EAGER не решает — делает проблему постоянной.

Полный разбор
Что делает включённый по умолчанию в Spring Boot режим open-in-view и почему его считают спорным?Middle

Open Session in View держит сессию Hibernate и соединение с базой до конца формирования ответа: ленивые связи «просто работают» в контроллере и сериализации. Цена — соединение занято дольше, N+1 прячется в слое представления.

Полный разбор

Разборы темы

← Вся карта «Spring»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования