[PHPCR-72] persist cancels move Created: 19/Jun/12  Updated: 21/Jul/12  Resolved: 21/Jul/12

Status: Resolved
Project: Doctrine PHPCR
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Freddy H. Assignee: Lukas Kahwe
Resolution: Won't Fix Votes: 0
Labels: None


 Description   

If i have a node that i fetch from the repo using $dm->find()

If i change an attribute in it.
Then i call $dm->move() on it

Then i call $dm->flush().

It will work.

However if i call $dm->persist() on the node (that i already fetched from $dm->find()) and then call $dm->flush()
The $dm->move() won't occur, it will be cancelled, but the attribute i changed will still be updated.



 Comments   
Comment by Lukas Kahwe [ 20/Jul/12 ]

i have to think about if this is a bug or a feature.
its certainly useful to have a way to "cancel" operations ..
f.e. persist() also cancels remove()

then again persist() is i guess viewed by many as a non problematic operation since it commonly doesn't break anything if one persisted an object multiple times.

Comment by Lukas Kahwe [ 21/Jul/12 ]

as i expected this is an intentional feature:
https://github.com/doctrine/phpcr-odm/blob/master/lib/Doctrine/ODM/PHPCR/UnitOfWork.php#L518

we could think about adding a dedicated method to "reset" the state, but the ORM doesn't have something like that so i rather not introduce it.

Generated at Wed Jul 23 20:08:56 UTC 2014 using JIRA 6.2.3#6260-sha1:63ef1d6dac3f4f4d7db4c1effd405ba38ccdc558.