我有一个多态关联(Class Table Inheritance),我需要使用DQL来查询特定子类的实体,这些实体可以使用WHERE子句中的“x INSTANCE OF Entity”来完成。现在我需要为该子类设置特定条件,但是我收到了这个错误:
“班级人员没有名为student_field_1的关联”
Person = Parent Class
员工=儿童班
学生=儿童班
有什么方法可以告诉Doctrine这个人实际上是一个学生并允许我把学生字段放在WHERE中吗?
答案 0 :(得分:0)
听起来像“Mapped Superclass”会更适合您尝试做的事情,因为它不需要父/子之间的显式链接,它只是简单的继承。
使用类表继承,您需要提供通过键链接两个实体的鉴别器映射。
“子类的表应该通过外键约束链接到父类的表”
答案 1 :(得分:0)
如果你只是在询问学生,那你为什么不这样做?
SELECT s FROM Student s WHERE s.student_field_1 = ...