Я использую учение 2.1
У меня есть два объекта для одной и той же записи, один сохранен, а другой нет. Вместо того, чтобы переписывать все свойства, я хотел бы присвоить ID новому и вызвать persist () в надежде, что соответствующая строка будет обновлена. В псевдокоде бустрап выглядит так:
$old_a = new A(name: "a", value: "old")
$em->persist($old_a);
$em->flush()
теперь у меня в базе данных есть строка с именем "a" и значением "old". Я хотел бы иметь значение "новый". Я мог бы сделать
$a = new A(name: "a", value: "new") // create new object
$query = $em->createQuery("SELECT A a WHERE name = 'a'") // check if object with the same name already exists
$old_a = $query->getSingleResult();
$old_a->setValue($a->getValue()) // update value with the new one - here is the problem! If there are many properties I do not want to invoke many times setXXX($a->getXXX). I would like to do something like $old_a = $a or $a->setId($old_a->getId())
$em->persist(old_a) // update the row