6

La mia struttura DB è la seguente:Doctrine2: OneToMany su mappato superclasse

lavoro:

  • CTI tavolo lavoro
  • MappedSuperclass tavolo AbstractImageWork che si estende lavoro
  • finale tavolo PhotoWork, che si estende AbstractImageWork

commento:

  • MappedSuperclass tavolo commento
  • tavolo finale WorkComment che si estende commento

WorkComment ha una relazione ManyToOne per lavoro:

@ManyToOne(targetEntity="Work", inversedBy="comments") 

lavoro ha un rapporto OneToMany per WorkComment:

@OneToMany(targetEntity="WorkComment", mappedBy="work") 

Il problema è che Dottrina mi dà questo errore durante l'aggiornamento lo schema:

[Doctrine\ORM\Mapping\MappingException] 
It is illegal to put an inverse side one-to-many or many-to-many association on 
mapped superclass 'Acme\...\AbstractImageWork#comments'. 
.210

Credo che questo ha qualcosa a che fare con la MappedSuperclass AbstractImageWork bloccato nel mezzo tra lavoro e PhotoWork, ma non ho effettivamente messo questa relazione sulla MappedSuperclass, ma sul tavolo CTI .. così perché Dottrina si comporterà in questo modo?

Qualche idea?

risposta

14

In alcuni casi, quando si dispone di tale errore quando ereditare dalla classe che viene etichettato come @ORM\MappedSuperclass, provare a cambiare le proprietà di accesso a livello privato a protetta

Problemi correlati