Обновить сущность с помощью уникального ключа - вставьте вместо обновления

У меня есть этот метод в моем сервисе:

public function updateCountry($p_entity) {   


    var_dump($p_entity->getId());    //return 3 (as expected)
    var_dump(get_class($p_entity) ); //return Country (as expected)

    $this->em->persist($p_entity);
    $this->em->flush();
}

Я называю это

$country = $em->getRepository('blabla')->find(3);
$my_service->updateCountry($country);

Но сгенерированный запрос

Doctrine \ DBAL \ DBALException: возникла исключительная ситуация при выполнении 'INSERT INTO страна (код, метка, create_at, updated_at) ЗНАЧЕНИЯ (?,?,?,?) ' с параметрами ["EN ","Англия ","201 3-08-23 00:00:00, ноль]:

У меня есть уникальная доктрина ограничение

это моя страна.orm.yml

To\Bundle\Entity\Country:
    type: entity
    table: country
    repositoryClass: To\Bundle\Entity\CountryRepository

    fields:
         id:
             type: integer
             id: true
             generator:
                 strategy: AUTO
         code:
             type: string
             length: 255
             unique: true
             nullable: false

Почему явставить запрос сгенерирован вместоОбновить один?

Ответы на вопрос(2)

Ваш ответ на вопрос