saveOrUpdate: Если запрашиваемый объект является временным (нулевое значение первичного ключа), сохраните его в базе данных или обновите.Условие состоит в том, что в сеансе имеется только одна копия этого объекта.
merge: Hibernate сначала проверит, существует ли постоянный экземпляр этого типа в постоянном контексте.Он использует идентификаторы объекта для проверки этого существования.Если существует другой экземпляр, он копирует состояние объекта Detached в существующий объект Persistence.Если другого экземпляра не существует, Hibernate просто повторно присоединяет объект Detached.
Если сеанс содержит более одной копии одной сущности, обновите всю копию до последней сущности. Он не будет обновляться в базе данных, пока вы не вызовете update.