我有一個簡單的問題後,查詢生成器的更新追加到已加載的實體,似乎他們是「desynchronize」。通過QueryBuilder更新後已經水化的實體同步
下面的代碼顯示probleme
/** @var EntityManager $em */
$repository = new PersonneRepository();
/** @var Personne $persone */
$persone = $repository->find('42');
echo 'SEXE : ' . $persone->getSexe() . "\n";
$invertedSexe = $persone->getSexe() == 'F' ? 'M' : 'F';
echo 'New Sexe : '.$invertedSexe."\n";
$q = $em->createQueryBuilder();
$q->update($repository->getClassName(), 'p')
->set('p.sexe', ":sexe")
->where('p.id = :id')
->setParameters(array(
'sexe' => $invertedSexe,
'id' => $persone->getId()
));
$q->getQuery()->execute();
echo 'SEXE : ' . $persone->getSexe() . "\n";
$persone = $repository->find('42');
echo 'SEXE : ' . $persone->getSexe() . "\n";
輸出:
SEXE : M
New Sexe : F
SEXE : M
SEXE : M