diff --git a/tests/Doctrine/Tests/ORM/Functional/Ticket/GH7067Test.php b/tests/Doctrine/Tests/ORM/Functional/Ticket/GH7067Test.php new file mode 100644 index 000000000..b82f25c05 --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Functional/Ticket/GH7067Test.php @@ -0,0 +1,69 @@ +enableSecondLevelCache(); + parent::setUp(); + + $this->setUpEntitySchema([GH7067Entity::class]); + } + + /** + * @group 7067 + */ + public function testSLCWithVersion() : void + { + $entity = new GH7067Entity(); + $entity->lastUpdate = new \DateTime(); + + $this->_em->persist($entity); + $this->_em->flush(); + $this->_em->clear(); + + /** @var GH7067Entity $notCached */ + $notCached = $this->_em->find(GH7067Entity::class, $entity->id); + + self::assertNotNull($notCached->version, 'Version already cached by persister above, it must be not null'); + + $notCached->lastUpdate = new \DateTime(); + + $this->_em->flush(); + $this->_em->clear(); + } +} + +/** + * @Entity() + * @Cache(usage="NONSTRICT_READ_WRITE") + */ +class GH7067Entity +{ + /** + * @Id + * @GeneratedValue + * @Column(type="integer") + * + * @var int + */ + public $id; + + /** + * @Column(type="datetime") + * + * @var \DateTime + */ + public $lastUpdate; + + /** + * @Column(type="datetime") + * @Version + * + * @var \DateTime + */ + public $version; +}