DDC-1210: if I call computeAssociationChanges twice it will add this collection twice #1817

Closed
doctrinebot opened this Issue Jun 16, 2011 · 5 comments

2 participants

@doctrinebot

Jira issue originally created by user realmfoo:

For example, if I call computeChangeSets() by myself before calling flush() it will result in errors.

@doctrinebot

Comment created by @beberlei:

The API is marked as internal.

@doctrinebot

Comment created by realmfoo:

Method computeChangeSets is not marked as internal (https://github.com/doctrine/doctrine2/blob/master/lib/Doctrine/ORM/UnitOfWork.php#L500).

If it is then how can I find out was entity changed or not? I need to know it before making other changes (update time, updater name and etc.).

@doctrinebot

Comment created by realmfoo:

Another example of using computeAssociationChanges via computeChangeSet described here:
http://www.doctrine-project.org/docs/orm/2.0/en/reference/events.html

So I can't use this example because of the problem with collections. onFlush rises AFTER computeChangeSets and BEFORE any changes, so if I call computeChangeSets inside onFlush event it will break commit (twice insert of equal index).

@doctrinebot

Comment created by @beberlei:

The documentation was a bit unclear about this.

The computeChangeSet API is internal. Its only allowed to be called for new entities after they have been persisted inside the onFlush.

You can use "getEntityChangeSet()" inside preUpdate for example to get all the changes that are done.

@doctrinebot

Issue was closed with resolution "Invalid"

@beberlei beberlei was assigned by doctrinebot Dec 6, 2015
@doctrinebot doctrinebot closed this Dec 6, 2015
@doctrinebot doctrinebot added the Bug label Dec 7, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment