Skip to content


DDC-2119: Problem with inheritance type: INHERITANCE_TYPE_NONE and INHERITANCE_TYPE_TABLE_PER_CLASS #2805

doctrinebot opened this Issue · 7 comments

2 participants


Jira issue originally created by user sergsw:

I tried to create inheritance entities with save policy table per class.
Simple fileds was created normally, but a field with ManyToOne type was lost.

I had found a solution.

In Doctrine\ORM\Tools\SchemaTool

private function _gatherRelationsSql($class, $table, $schema)
        foreach ($class->associationMappings as $fieldName => $mapping) {

           // if (isset($mapping['inherited'])) { // - old version

             * SSW
             * It's the solution
    if (isset($mapping['inherited']) && !$class->isInheritanceTypeNone() && !$class->isInheritanceTypeTablePerClass() ) {

            $foreignClass = $this->_em->getClassMetadata($mapping['targetEntity']);

But it was enough. In DQL query a simple query was made wrong.

I had found a solution again.
In Doctrine\ORM\Query\SqlWalker

public function walkSelectExpression($selectExpression)

                // original => if (isset($mapping['inherited'])){
                // It's the solution
                if (isset($mapping['inherited']) && !$class->isInheritanceTypeNone() && !$class->isInheritanceTypeTablePerClass()) {
                    $tableName = $this->_em->getClassMetadata($mapping['inherited'])->table['name'];
                } else {
                    $tableName = $class->table['name'];

This problems are topical for inheritance type: INHERITANCETYPE_NONE and INHERITANCE_TYPE_TABLE_PERCLASS.

I don't know, may be my solutions are wrong. But some programmers want to correctly work with INHERITANCETYPE_TABLE_PERCLASS.

Sorry for my english.


Comment created by @FabioBatSilva:

Hi SergSW

Could you try to write a failing test case ?



Comment created by sergsw:

SSW/TestBundle with the problem


Comment created by sergsw:

I install the Symfony v2.0.18. and made small TestBundle.
I made schema database, by CLI "console doctrine:schema:update --force"
Result: Database schema updated successfully!
But I saw that I lost a field 'user_id' in a table 'AttachTree' (see Attach)


Comment created by sergsw:

MySQL dump


Comment created by @beberlei:

Adjusted example formatting, don't apologize for your English, thanks for the report!


Comment created by @beberlei:

What version of 2.1 are you using? We don't actually support 2.1 anymore. Inheritance has always worked as used in hundrets of unit-tests, this changes look quite major a bug to have been missed before. I can't really explain whats happening here.


Comment created by @ocramius:

[~sergsw] news?

@beberlei beberlei was assigned by doctrinebot
@doctrinebot doctrinebot added the Bug label
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.