Doctrine2:映射超类的Onetomany



我的DB结构如下:

工作:

  • CTI表工作
  • 映射superclass表 AbstractImagework 扩展了工作
  • 最终表 photOwork 扩展了 AbstractImagework

评论:

  • 映射的SuperClass表注释
  • 最终表工作收费扩展注释

WorkComment 工作有很多关系

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

工作 WorkComment 有一个oneTomany关系:

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

问题是,学说在更新架构时给了我这个错误:

[DoctrineORMMappingMappingException]
It is illegal to put an inverse side one-to-many or many-to-many association on
mapped superclass 'Acme...AbstractImageWork#comments'.

我想这与映射的superclass AbstractImagework 粘在工作 photoWork 之间,但我实际上没有真正没有将此关系放在映射的supperclass上,但是在CTI表上。

有什么想法?

在某些情况下,当您从标记为 @ORMMappedSuperclass的类中继承时会出现此类错误时,请尝试将您的属性访问级别从 private 更改为受保护

映射的超类不能是一个实体,它不可查询,并且由映射的超类定义的持久关系必须是单向的(仅具有拥有的一侧)。这意味着在映射的超级类别上根本无法进行一对多的关联。此外,只有在当时仅在一个实体中使用映射的超级类别,才有可能多对多的关联。为了进一步支持继承,必须使用单个或连接的表继承功能。

在此处查看:https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/inheritance-mapping.html

在其他情况下,当您在抽象上级类别中声明@ORMEntity而不是@ORMMappedSuperclass

时会发生

相关内容

  • 没有找到相关文章

最新更新