I faced the
problem with preserving manually setted ID’s of records represented by entities having id
with auto generate strategy.
If for some reasons you really want to set the ID manually either
rely on generating strategy (@GeneratedValue strategy
), you have to set:
@GeneratedValue(strategy="NONE")
But if your application rely on auto identifiers creation (@GeneratedValue(strategy="AUTO")
) and you have to exceptionally set the ID manually (e.x. for synchronization), you have to change the strategy dynamicaly by injecting it into meta object of entity:
$metadata = $this->entityManager->getClassMetaData(get_class($entity));
$metadata->setIdGenerator(new \Doctrine\ORM\Id\AssignedGenerator());
Where $entity
is enetity you want to persist and there is an working entity manager under $this->entityManager
.
Wkońcu na Symfony przeszedłeś? ;p