Skip to content

DDC-1504: Cascade remove in OneToMany relation doesn't work #2134

Closed
doctrinebot opened this Issue Nov 22, 2011 · 8 comments

2 participants

@doctrinebot

Jira issue originally created by user naelyth:

I have two entities :

class Structure
{
    // Id and other variables

    /****
     * @var ArrayCollection $employees liste des employés d'une structure
     *
     * @ORM\OneToMany(targetEntity="Uriae\EmployeeBundle\Entity\Employee", mappedBy="structure", cascade={"all"})
     */
    private $employees;
}

class Employee
{
    // Id and other variables

    /****
     * @var integer $structure
     *
     * @ORM\ManyToOne(targetEntity="Uriae\StructureBundle\Entity\Structure",inversedBy="employees")
     */
    private $structure;
}

The problem is when I used tests and I wan't remove a Structure the Employees aren't removed.

// Doesn't work
$em->remove($structure);
$em->flush();

// Bad solution but it works
$em->remove($structure);
$em->flush();
foreach ($employee as $employees)
{
    $em->remove($employee);
}
$e->flush();
@doctrinebot

Comment created by stefi023:

The same problem, described here
http://stackoverflow.com/questions/7766999/doctrine-2-0-vs-2-1-cascade-remove-onetomany

@doctrinebot

Comment created by naelyth:

I know, it's me who answered. But the solution i've found is "ugly".

@doctrinebot

Comment created by @beberlei:

Fixed formatting

@doctrinebot

Comment created by entea:

If you add orphanRemoval="true" it works.
But I think doctrine should somehow let the user know about this problem (throw exception, etc.)
Maybe it worths making orphanRemoval=true when cascading=remove?

@doctrinebot

Comment created by @beberlei:

  1. orphanRemoval is not the right solution, it has different semantics. If you want this semantics the solution is ok.
  2. Has anyone tried updating to anything above 2.1.2?
  3. I cannot reproduce with a test-case against the current master or 2.1.5

I need a better testcase. Attached is the one i am working with.

@doctrinebot

Comment created by @beberlei:

No feedback given.

@doctrinebot

Issue was closed with resolution "Incomplete"

@beberlei beberlei was assigned by doctrinebot Dec 6, 2015
@doctrinebot doctrinebot added this to the 2.2.3 milestone 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
Something went wrong with that request. Please try again.