Чем persist отличается от merge в JPA?

Middle
290 просмотров
AFK Offer AI

persist(): для NEW (transient) сущностей — начинает их отслеживать, ID должен быть null или назначен generator. Если сущность уже managed — no-op. Если detached — исключение. merge(): копирует состояние переданного объекта в managed копию, возвращает managed copy (переданный объект остаётся detached). Работает и с new (как insert), и с detached (как update). Типичная ошибка: использовать persist() для detached entity после em.clear() — EntityExistsException.

Следующий вопрос

Что такое backpressure в реактивном программировании?