教条鉴别器图不更新

时间:2015-09-24 16:16:41

标签: php symfony doctrine

我遇到类表继承问题。我尝试添加一个类AtmosphereStudentRequest,它扩展了另一个ServiceRequest。我收到以下错误:

  

实体'Entities \ ServiceRequest \ AtmosphereStudentRequest'必须是'Entities \ ServiceRequest'的描述符映射的一部分才能在继承层次中正确映射。或者,您可以将“Entities \ ServiceRequest \ AtmosphereStudentRequest”设为抽象类,以避免发生此异常。

ServiceRequest中存在以下表继承元数据。注意我正在添加一个类,以及之前存在的其他类,并且工作正常。

/**                                                                                                                                        
 * @Entity(repositoryClass="Repositories\ServiceRequestRepository")                                                                        
 * @InheritanceType("JOINED")                                                                                                              
 * @DiscriminatorColumn(name="subtype", type="string")                                                                                     
 * @DiscriminatorMap({"service_request" = "ServiceRequest", "atmosphere_student_requests" = "\Entities\ServiceRequest\AtmosphereStudentRequest", "atmosphere_request" = "\Entities\ServiceRequest\AtmosphereRequest", ... })                                                                                              
 * @HasLifecycleCallbacks                                                                                                                  
 * @Table(name="service_requests",indexes={@index(name="service_request_status_idx",                                                       
 * columns={"status"})})                                                                                                                   
 */         

我挖出错误的代码并验证了ServiceRequest 类在其鉴别器映射列表中没有 AtmosphereStudentRequest。我还注意到我对DiscriminatorMap注释的更改对我正在打印的映射列表没有影响。缓存罪魁祸首?我是否需要运行命令来更新新注释?

我是php的新手,也是php的web dev。我使用控制台学说工具来检查映射是否正确。当我跑步时,php doctrine orm:schema:update。我得到以下输出:

...
Array
(
    [0] => Entities\ServiceRequest
    ...
    [2] => Entities\ServiceRequest\AtmosphereStudentRequest
    [3] => Entities\ServiceRequest\AtmosphereRequest
    ...
)
...
Nothing to update - your database is already in sync with the current entity metadata.

我正在使用Doctrine 1.2

0 个答案:

没有答案