Разница между save(), persist(), merge(), update()?

Ответ

persist — для новых (JPA стандарт, не возвращает id). save — Hibernate-specific, возвращает id. merge — копирует detached в managed. update — прикрепляет detached.

Разбор: persist (JPA) предназначен для новых сущностей и не возвращает id (void), save (Hibernate) возвращает сгенерированный идентификатор. merge берёт detached-объект и копирует его состояние в управляемую копию (возвращает её), а update просто переводит detached-объект обратно в managed. Главная ловушка — считать persist/save и merge/update полными синонимами: у них разные контракты возврата и разная работа с detached-объектами.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться