Выбор ответа Middle Spring Data JPA обновлено
Зачем проекции
Вопрос
Для списка заказов нужны только id и total, а у сущности 40 полей и связи. Что лучше вернуть из репозитория?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: DTO- или интерфейсную проекцию с двумя полями. Проекция выбирает только нужные колонки, не создаёт управляемые сущности и не грузит связи: меньше трафика, памяти и работы dirty checking.
Варианты ответа
- Сущности целиком и маппить в DTO в сервисе
Object[]из native-запроса с двумя колонками- DTO- или интерфейсную проекцию с двумя полямиправильный ответ
Map<String, Object>с ключами id и total
Разбор
Проекция выбирает только нужные колонки, не создаёт управляемые сущности и не грузит связи: меньше трафика, памяти и работы dirty checking. Полные сущности ради двух полей расточительны. Object[] и Map работают, но без типизации и с ручным разбором.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.