Выбор ответа Middle Spring Data JPA обновлено

Результат save

Вопрос

Почему правильно писать order = repo.save(order), а не просто repo.save(order)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Для существующей сущности merge вернёт другой, управляемый объект. merge копирует состояние в управляемый экземпляр и возвращает его, а переданный объект остаётся отсоединённым.

Варианты ответа

  1. Для существующей сущности merge вернёт другой, управляемый объектправильный ответ
  2. Иначе save не выполнится: результат обязательно нужно присвоить
  3. Это требование для генерации id: он появится только в возвращённом
  4. Разницы нет, это вопрос стиля и единообразия кода

Разбор

merge копирует состояние в управляемый экземпляр и возвращает его, а переданный объект остаётся отсоединённым. Если дальше менять исходный объект, изменения не попадут в базу. Для новой сущности (persist) вернётся тот же объект, но полагаться на это не стоит. Сам save выполняется в любом случае.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.