Q:

Doctrine2 designing problems with inheritance

I am currently setting up a new application and decided to use doctrine2 as an orm.
I am new to doctrine2, and having quite some difficulties getting my design the way I want it.
This is what I'm trying to do:
I have the following classes:
class User {

    protected $userid;
    protected $role;
    protected $lang;
    protected $email;
    protected $disabled;
    ...
    + getters and setters
}

class Person extends User {

    protected $personid;
    protected $name;
    protected $firstname;
    protected $company;
    protected $functiontitle
    ...

    + getters and setters
}

class Candidate extends User {

    protected $candidateid;
    protected $name;
    protected $firstname;
    protected $title;
    protected $birthdate;
    ...

    + getters and setters
}

Both Candidate and Person inherit the User properties, but have their own set op specific properties.
In the postgresql database I currently have a similar set up, 3 tables, with each their set of specific columns.
Now I would like to map this using yaml, and want all 3 of the classes to be accessible as entities.
I also don't want to have to duplicate a lot of fields in my database.
How can I accomplish this?
I've been looking for solutions for days but haven't come up with anything working.
If what I am trying to do is not possible then please explain what my options are, and why this isn't supported.
Without an ORM it seems that I could easily add foreign keys to candidate and person to join with the user table, but I can't get that to work with doctrine.
This is the yaml file I currently have to set it up as a Class Table Inheritance:
User:
MyProject\model\User:
    type: entity
    table: `user`
    id:
        userid:
            column: userid
            type: integer
            nullable: false
            comment: ''
            id: true                  
    fields:
        role:
            column: role
            type: string
            nullable: true
            length: null
            fixed: false
            comment: ''
        email:
            type: string
            nullable: true
            length: null
            fixed: false
            comment: ''        
        disabled:
            type: boolean
            nullable: true
            comment: ''
    InheritanceType: JOINED
    DiscriminatorColumn:
        name: discr
        type: string
    DiscriminatorMap:
        person: Person
        candidate: Candidate
    lifecycleCallbacks: {  }

Person:
MyProject\model\Person:
    type: entity
    table: person
    fields:        
        name:
            type: string
            nullable: true
            length: null
            fixed: false
            comment: ''
        firstname:
            type: string
            nullable: true
            length: null
            fixed: false
            comment: ''
        company:
            type: string
            nullable: true
            length: null
            fixed: false
            comment: ''
        functiontitle:
            type: string
            nullable: true
            length: null
            fixed: false
            comment: ''
        ...
    lifecycleCallbacks: {  }

But this doesn't work.

A:

To avoid injury, sit on your hands before reading further.  Don't want to give yourself a concussion with a face palm.
...
ready?
...
Lower case the first letter of inheritanceType, discriminatorColumn and discriminatorMap.
Drop the schema and rebuild.
I am assuming that you already changed the discriminator column to discr.

