Skip to content

Loading…

DDC-890: Association mapping 'One-To-Many, Self-referencing' with cascade and removes fk onDelete=restrict #5415

Closed
doctrinebot opened this Issue · 3 comments

2 participants

@doctrinebot

Jira issue originally created by user ardemiranda:

By using the association mapping 'One-To-Many, Self-referencing' removes the cascade.

How to follow the example below, and removed the first parent entity after the children entities.

And if you use foreign key onDelete=restrict the referential integrity error

A possible solution in the patch attached below


<?php
/*** @Table(name="category") **/
class Category
{
    /****
     * @Id
     * @Column(name="id")
     */
    public $id;

    /****
     * @OneToMany(targetEntity="Category", mappedBy="parent", cascade={"remove"})
     */
    public $children;

    /****
     * @ManyToOne(targetEntity="Category", inversedBy="children")
     * @JoinColumn(name="parent_id", referencedColumnName="id")
     */
    public $parent;

    public function **construct() {
        $this->children = new \Doctrine\Common\Collections\ArrayCollection();
    }
}
?>
CREATE TABLE `category` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `parent_id` int(10) unsigned DEFAULT NULL,
  `name` varchar(50) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `fk*id_parent_id` (`parent*id`),
  CONSTRAINT `fk*id_parent_id` FOREIGN KEY (`parent*id`) REFERENCES `category` (`id`)
) ENGINE=InnoDB AUTO*INCREMENT=18 DEFAULT CHARSET=utf8 ROW*FORMAT=DYNAMIC
@doctrinebot

Comment created by @guilhermeblanco:

Seems to be fixed already in master.
Closing the ticket.

@doctrinebot

Issue was closed with resolution "Fixed"

@doctrinebot doctrinebot added this to the 2.3 milestone
@doctrinebot doctrinebot closed this
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.