Symfony2 & Doctrine2: командный цикл создает новую сущность в каждом цикле - PullRequest
2 голосов
/ 01 декабря 2011

У меня запущен скрипт CLI Symfony2, который должен обновлять отметку времени каждые 3 секунды.Проблема в том, что $this->em->persist($processInfo) создает новую запись в БД при каждом ее выполнении.Я хочу, чтобы он ОБНОВЛЯЛ, а не СОЗДАВАЛ на каждом цикле.

1 Ответ

0 голосов
/ 01 декабря 2011

Используйте persist только один раз. Затем вам нужно зафиксировать активную транзакцию и запустить новую, чтобы указать базе данных сохранить их и сделать новую транзакцию:

$processInfo = new ....ProcessInfo();
$this->em()->persist($processInfo);
$this->em()->getConnection()->commit();
while(true){
    $processInfo->setLastCheckOn($now); // to know if the script is still running, we set a timestamp in the db
    $this->em()->flush();
    sleep(3);
}
...