Suppose I got the following Entities A => one-to-many => B B => many-to-one => C
Then let's 1. load an instance of A: $a 2. given $a, iterate over the collection of B's: 3. pick a specific B: $b. For that specific B: 4. given $b, change the instance of C ($c1), with another, already existing / managed instance of C ($c2) After flushing, I would expect that the join- column of the table for Entity B referring to Entity C would be updated from $c1.id to $c2.id But instead: - when invoking $entityManager->flush(); the value of the column in'b.c_id' does not change (seems the change is not detected) - when invoking $entityManager->flush($b); the value of the column in'b.c_id' does change (the change is detected) And as experiment: - when invoking $entityManager->flush($a); the value of the column in'b.c_id' does not change (the change is not detected) I thought that $entityManager->flush() would check its internal Identity Map for all 'dirty' / changes objects and flush them. But it appears the change to Entity B as part of the collection in Entity A is not detected. Has that behavior changed recently, or is my assumption incorrect, can't remember I ever needed to explicitly invoke flush on a specific kind of Entity... Cheers, Menno PS, the reason I am asking is because we are using DCI <http://en.wikipedia.org/wiki/Data,_context_and_interaction> inspired UseCases that should only return a boolean. After a successfull execution of a UseCase the controller invokes $entityManager->flush(). Now I have to do $entityManager->flush($b); inside the UseCase (we should not return the $b to the controller), while the UseCase is purely functional and should not care about such details. -- You received this message because you are subscribed to the Google Groups "doctrine-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/doctrine-user. For more options, visit https://groups.google.com/d/optout.
