"merge" is not for merging two entities together, but for merging a
non-managed entity and make it managed.

Hence the undefined behavior you are getting.

Also a reminder: EntityManager#merge() is deprecated and will be removed
from ORM v3.

Marco Pivetta

http://twitter.com/Ocramius

http://ocramius.github.com/


On Mon, Aug 13, 2018 at 4:47 PM Jarek Torbicki <[email protected]> wrote:

> Hello,
>
> I have a problem with ManyToOne relation.
>
> For example, I have main object with three child and when I execute on
> main object
>
>                             $em = $this->getDoctrine()->getManager();
>
>                             $em->merge($data);
>
>                             $em->flush();
>
> I sometimes get ERROR message like:
>
> *Uncaught PHP Exception
> Doctrine\DBAL\Exception\UniqueConstraintViolationException: "An exception
> occurred while executing 'UPDATE*
>
>
>
> I get this ERRROR message not for all main object and not for all child.
> For example, first update child object is ok but in second I get Error.
>
>
>
> SQL prepared by doctrine:
>
> UPDATE child_table SET id = ?, name = ?, object_name = ?, object_size = ?
> WHERE id = ?' with params ["2", "test Name object 2", "test name object 2",
> "1234", 3]
>
>
>
> In this sql the doctrine tries update object with id=3 using data from
> object with id = 2.
>
>
>
> I am using 10.4 PostgreSQL and:
>
> doctrine/annotations                 v1.2.7
>
> doctrine/cache                       v1.4.2
>
> doctrine/collections                 v1.3.0
>
> doctrine/common                      v2.7.3
>
> doctrine/dbal                        v2.5.13
>
> doctrine/doctrine-bundle             v1.5.2
>
> doctrine/doctrine-cache-bundle       v1.0.1
>
> doctrine/inflector                   v1.0.1
>
> doctrine/instantiator                1.0.5
>
> doctrine/lexer                       v1.0.1
>
> doctrine/orm                         v2.5.14
>
>
>  What is the reason of this problem?
>
> --
> 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 https://groups.google.com/group/doctrine-user.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 https://groups.google.com/group/doctrine-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to