DDC-2370: Subclass annotations not being read, unable to use OneToMany relation with single table inheritance #3079

Closed
doctrinebot opened this Issue Mar 26, 2013 · 3 comments

2 participants

@doctrinebot

Jira issue originally created by user thinkscape:

Subclasses that override parent class properties and define relations will not work as expected, because AnnotationDriver/Reader will only use the parent class annotation (discarding whatever subclass defined).

The following code will produce error:

[Mapping]  FAIL - The entity-class 'Test\Office' mapping is invalid:
* The mappings Test\Office#employees and Employee#office are incosistent with each other.

Test code:

<?php
namespace Test;

use Doctrine\ORM\Mapping as ORM;

/****
 * @ORM\Entity
 */
class Office 
{
    /****
     * @ORM\OneToMany(targetEntity="Person", mappedBy="office")
     * @var Person[]|ArrayCollection
     */
    protected $people;

    /****
     * @ORM\OneToMany(targetEntity="Employee", mappedBy="office")
     * @var Employee[]|ArrayCollection
     */
    protected $employees;

}

/****
 * @ORM\Entity
 * @ORM\InheritanceType("SINGLE_TABLE")
 * @ORM\DiscriminatorColumn(name="type", type="string")
 * @ORM\DiscriminatorMap({"employee" = "Employee"})
 */
class Person
{
    /****
     * @ORM\ManyToOne(targetEntity="Office", inversedBy="people")
     * @var Office
     */
    protected $office;
}

/****
 * @ORM\Entity
 */
class Employee extends Person
{
    /****
     * @ORM\ManyToOne(targetEntity="Office", inversedBy="employees")
     * @var Office
     */
    protected $office;
}
@doctrinebot

Comment created by @beberlei:

Overwriting assocations in this way is not supported.

@doctrinebot

Issue was closed with resolution "Invalid"

@doctrinebot

Comment created by thinkscape:

Ok, I get that it's not supported right now, but why did you mark it as resolved?

@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