我的数据库结构如下:

工作:

  • CTI工作
  • MappedSuperclass抽象图像工作,扩展了工作
  • 决赛 table 扩展了的PhotoWork

    评论:
  • MappedSuperclass评论
  • 决赛 table 扩展的WorkComment 注释

  • WorkComment Work 有ManyToOne关系:
    @ManyToOne(targetEntity="Work", inversedBy="comments")
    

    工作 WorkComment 有一个一对多的关系:
    @OneToMany(targetEntity="WorkComment", mappedBy="work")
    

    问题是,Doctrine在更新架构时给了我这个错误:
    [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'.
    

    我猜想这与MappedSuperclass AbstractImageWork 有关,该问题卡在 Work PhotoWork 之间,但是我实际上没有将此关系放在MappedSuperclass上,而是在CTI表上。表现得像这样吗?

    有任何想法吗?

    最佳答案

    在某些情况下,当您从标记为@ORM\MappedSuperclass的类继承时遇到此类错误时,请尝试将属性访问级别从私有(private)更改为保护的

    关于doctrine-orm - Doctrine2 : OneToMany on mapped superclass,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13124225/

    10-10 03:31