_em->getConnection()->getConfiguration()->setSQLLogger(new \Doctrine\DBAL\Logging\EchoSQLLogger); $this->_schemaTool->createSchema(array( $this->_em->getClassMetadata(__NAMESPACE__ . '\DDC444User'), )); } public function testExplicitPolicy() { $classname = __NAMESPACE__ . "\DDC444User"; $u = new $classname; $u->name = "Initial value"; $this->_em->persist($u); $this->_em->flush(); $this->_em->clear(); $q = $this->_em->createQuery("SELECT u FROM $classname u"); $u = $q->getSingleResult(); $this->assertEquals("Initial value", $u->name); $u->name = "Modified value"; // This should be NOOP as the change hasn't been persisted $this->_em->flush(); $this->_em->clear(); $u = $this->_em->createQuery("SELECT u FROM $classname u"); $u = $q->getSingleResult(); $this->assertEquals("Initial value", $u->name); $u->name = "Modified value"; $this->_em->persist($u); // Now we however persisted it, and this should have updated our friend $this->_em->flush(); $q = $this->_em->createQuery("SELECT u FROM $classname u"); $u = $q->getSingleResult(); $this->assertEquals("Modified value", $u->name); } } /** * @Entity @Table(name="ddc444") * @ChangeTrackingPolicy("DEFERRED_EXPLICIT") */ class DDC444User { /** * @Id @Column(name="id", type="integer") * @GeneratedValue(strategy="AUTO") */ public $id; /** * @Column(name="name", type="string") */ public $name; }