Doctrine多级继承顺序问题

时间:2014-11-25 17:43:54

标签: doctrine-orm

在教义中使用具有多个级别的类表继承时:
帐户 - >用户 - >经销商
(经销商继承自用户,账户用户)
帐户具有鉴别器列和映射。当持久化新的Dealer实体时,我得到一个外键错误,因为User表中没有行。

因此执行insert语句的顺序是:
1)插入帐户
2)插入经销商(导致错误)
3)插入用户
有人可以提前帮助我吗

1 个答案:

答案 0 :(得分:0)

这是我的配置:

/**
* @Table(name="Account")
* @Entity
* @InheritanceType("JOINED")
* @DiscriminatorColumn(name="discr", type="string")
* @DiscriminatorMap({"Account" = "Default_Model_Account","User" = "Default_Model_User","Dealer" = "Default_Model_Dealer"})
*/
class Default_Model_Account {
/**
 * @id @column(name="accountID",type="integer")
 * @GeneratedValue(strategy="AUTO")
 */
protected $accountID;
/**
 * @column(name="email",type="string")
 * 
 */
protected $email;
}

/**
* @Table(name="User")
* @Entity
*/
class Default_Model_User extends Default_Model_Account{
/**
 * @column(name="firstName",type="string")
 */
 protected $firstName;

}

/**
* @Entity
* @Table(name="Dealer")
* 
*/
class Default_Model_Dealer extends Default_Model_User{
/**
 * @column(name="type",type="string")
 */
protected  $type;
}