Skip to content

Commit e3cabad

Browse files
authored
Merge pull request #11768 from pbreteche/HINT_READ_ONLY-use-its-boolean-value
Check hint value before considering instance read-only
2 parents 9402f9e + 4a9101f commit e3cabad

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/UnitOfWork.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -2968,7 +2968,7 @@ public function createEntity($className, array $data, &$hints = [])
29682968
$oid = spl_object_id($entity);
29692969
$this->registerManaged($entity, $id, $data);
29702970

2971-
if (isset($hints[Query::HINT_READ_ONLY])) {
2971+
if (isset($hints[Query::HINT_READ_ONLY]) && $hints[Query::HINT_READ_ONLY] === true) {
29722972
$this->readOnlyObjects[$oid] = true;
29732973
}
29742974
}

tests/Tests/ORM/Functional/ReadOnlyTest.php

+18
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,24 @@ public function testReadOnlyQueryHint(): void
9090
self::assertTrue($this->_em->getUnitOfWork()->isReadOnly($user));
9191
}
9292

93+
public function testNotReadOnlyQueryHint(): void
94+
{
95+
$user = new ReadOnlyEntity('beberlei', 1234);
96+
97+
$this->_em->persist($user);
98+
99+
$this->_em->flush();
100+
$this->_em->clear();
101+
102+
$query = $this->_em->createQuery('SELECT u FROM ' . ReadOnlyEntity::class . ' u WHERE u.id = ?1');
103+
$query->setParameter(1, $user->id);
104+
$query->setHint(Query::HINT_READ_ONLY, false);
105+
106+
$user = $query->getSingleResult();
107+
108+
self::assertFalse($this->_em->getUnitOfWork()->isReadOnly($user));
109+
}
110+
93111
public function testNotReadOnlyIfObjectWasProxyBefore(): void
94112
{
95113
$user = new ReadOnlyEntity('beberlei', 1234);

0 commit comments

Comments
 (0)