gpt4 book ai didi

sql - Doctrine 2 - 单表继承 - 子实体的访问属性

转载 作者:行者123 更新时间:2023-12-04 16:11:57 27 4
gpt4 key购买 nike

我的实体上有简单的表继承,比如:

/** 
* @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")
这给了我以下异常:

[Semantical Error] line 0, col 406 near 'extendedProperty="xy"))': Error: Class Models\Articles\BaseArticle has no field or association named location


所以问题是,如何在查询中访问子类的属性到父类?

最佳答案

你不能。这是一个解决方法:

SELECT a
FROM BaseArticle a
WHERE
a INSTANCE OF BaseAricle
OR a.id IN (
SELECT ea.id
FROM ExtendedArticle ea
WHERE ea.extendedProperty = "xy"
)

关于sql - Doctrine 2 - 单表继承 - 子实体的访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11956206/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com