"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.
