DDC-2157: @HasLifecycleCallbacks does not fire events when set on @MappedSuperclass #2847

Closed
doctrinebot opened this Issue Nov 20, 2012 · 6 comments

2 participants

@doctrinebot

Jira issue originally created by user frederes:

I am unable to fire any of the "HasLifecycleCallbacks" when defined on a MappedSuperclass... (neither PreUpdate, PostUpdate,PrePersist, PostPersist and others)

I have even tried to put @ORM\HasLifecycleCallbacks on the child class with onPostRemove() on mapped => not working anymore

It only works when i put @ORM\HasLifecycleCallbacks and onPostRemove() both in child class "MyMappedTask"...

Is this a bug ..?

To reproduce :

<?php
namespace MyProject\Entity;

use Doctrine\ORM\Mapping as ORM;

/****
 * @ORM\MappedSuperclass
 * @ORM\HasLifecycleCallbacks
 */
class MyMappedTask
{
   /****
    * @ORM\PreRemove
    * @ORM\PostRemove
    * @ORM\PreUpdate
    * @ORM\PostUpdate
     */
    public function onPostRemove()
    {
        echo "here is never reached !";
    }
}

/****
 * @ORM\Entity(repositoryClass="MyProject\Repository\MyTaskRepository")
 * @ORM\Table()
 */
class MyTask extends MyMappedTask
{

}
@doctrinebot

Comment created by @FabioBatSilva:

code format

@doctrinebot

Comment created by @FabioBatSilva:

Hi Frederic,

It failed for all events or just for @PostRemove ?

Could you try to add a failing test case ?

Cheers

@doctrinebot

Comment created by frederes:

Hi Fabio,

1) Thank you for the "code" tag, i didn't know to do ;)

2) Is fails with all the Annotations "Pre/Post*" ...

Did you try this test case ?

Thank you

@doctrinebot

Comment created by @FabioBatSilva:

Hi Frederic,

Can't reproduce..
Could you try to change the attached test case and make it fails ?

Cheers

@doctrinebot

Comment created by frederes:

Hi Fabio,

Thank you for the test case, it is OK !

I found what the problem was :
I use Symfony2 and i have one bundle with the @MappedSuperclass entity and its callbacks (@HasLifecycleCallbacks), and another bundle with the child class (@Entity/@Table).
In that case, you must register the 2 bundles on the mappings (config.yml) otherwise it fails.
(I only registered the bundle which contains the child class but was not enough for Doctrine to understand...)

I don't know if it is a bug on Symfony2, not well documented in this case...

Thank you for all

@doctrinebot

Issue was closed with resolution "Invalid"

@beberlei beberlei was assigned by doctrinebot 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