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