子实体上的Doctrine Class继承id

时间:2018-03-14 11:09:22

标签: sql sql-server inheritance doctrine-orm entity

您好, 在Doctrine 2.6.1中:6.3. Class Table Inheritance 我使用sql server 2014,Symfony 3.3,PHP 7.1.9

<?php
namespace MyProject\Model;

/**
 * @Entity
 * @Table(name="[Persons]")
 * @InheritanceType("JOINED")
 * @DiscriminatorColumn(name="discr", type="string")
 * @DiscriminatorMap({"visitor" = "Visitor", "employee" = "Employee"})
 */
abstract class Person
{
    /**
     * @var int
     *
     * @ORM\Column(name="[IdPerson]", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;
    // ...
}

/** 
 * @Entity 
 * @Table(name="[Employes]")
 */
class Employee extends Person
{
    /**
     * @var int
     *
     * @ORM\Column(name="[IdPerson]", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="???")
     */
    private $id;
    // ...
}

/** 
 * @Entity 
 * @Table(name="[Visitors]")
 */
class Visitor extends Person
{
    /**
     * @var int
     *
     * @ORM\Column(name="[IdPerson]", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="???")
     */
    private $id;
    // ...
}

在我的数据库中

  • 我的[Visitors]表的主键是。的外键 [人物]表的主键。

  • 我的[Employees]表的主键是。的外键 [人物]表的主键。

我的问题是:如何配置学说来管理相对于父母的儿童身份策略?

0 个答案:

没有答案