Doctrine ORM в чём разница между EntityManager->merge() и EntityManager->persist()?
Мерж здесь абсолютно не нужен. Тот кто его использовал в этом месте не имеет полного представления как работает доктрина.
Мерж может использоваться, когда сущность была задетачена, и ее снова нужно добавить как отслеживаемую в энтити менеджер. И да, это будет новый объект с новым spl object hash’ом
в первом варианте, когда сущьность не найдена, и результат нулл, то надо создать новый объект и заперсистить его перед записью
И если запись уже найдена, просто обновить её ! т.е. смерджить.
и в конце отправка на запись в БД, т.е. собираеются все запроссы и одной большой пачкой отправляются на запись в БД. и указанные выше(в примере) и те которые были указаны в $em->persist(...) ранее !
В вашем примере оч хорошо показано, что обновление записи идет - замена даты создания/генерации