我对我的实体有简单的表继承,比如:
/**
* @InheritanceType("SINGLE_TABLE")
* @DiscriminatorColumn(name="type", type="string")
* @DiscriminatorMap({"base"="BaseArticle", "extended"="ExtendedArticle"})
*/
class BaseArticle extends \Models\BaseModel{
...
}
class ExtendedArticle extends BaseArticle{
/**
* @column(type="string")
*/
protected $extendedProperty;
}
我需要对所有文章类型进行查询,但在某些类型中,通过某些属性限制查询,即在扩展的 ExtendedArticle 中,即:
SELECT a FROM BaseArticle a WHERE (a INSTANCE OF BaseAricle) OR (a INSTANCE OF ExtendedArticle AND a.extendedProperty = "xy")
这给了我以下例外:
[语义错误] line 0, col 406 near 'extendedProperty="xy"))': Error: Class Models\Articles\BaseArticle 没有名为 location 的字段或关联
所以问题是,如何在对父类的查询中访问孩子的属性?