删除并加入 - 别名未定义
Delete with join - Alias not defined
在我的数据库中进行更改后,我将删除另一个 table 中的一些相关条目。
我在我的存储库中进行了自定义查询:
public function removeOptionGc(VarianteEscalier $varianteEscalier) {
$em=$this->getEntityManager();
return $em->createQueryBuilder()
->delete(VarianteEscalierOptGc::class, "vogc")
->join("vogc.gardecorpsOption", "gco")
->where("vogc.varianteEscalier=:VARIANTE")
->andWhere("gco.type='option_gc_rampant' OR gco.type='option_gc_etage' OR gco.type='autres'")
->setParameters(array('VARIANTE'=>$varianteEscalier))
->getQuery()
->getResult();
}
当我执行它时,会出现以下错误:
[Semantical Error] line 0, col 94 near 'gco.type='option_gc_rampant'': Error: 'gco' is not defined.
这是我从这个查询中得到的 DQL:
DELETE AppBundle\Entity\VarianteEscalierOptGc vogc WHERE vogc.varianteEscalier=:VARIANTE AND (gco.type='option_gc_rampant' OR gco.type='option_gc_etage' OR gco.type='autres')
知道为什么当我尝试 delete
时 join
被忽略了吗?
来自 Doctrine 本身的开发者之一,答案是许多供应商在 INSERT
、UPDATE
和 DELETE
语句中不支持 JOIN
,而 Doctrine不包括不跨平台的功能(几乎一字不差他说的)。
在我的数据库中进行更改后,我将删除另一个 table 中的一些相关条目。
我在我的存储库中进行了自定义查询:
public function removeOptionGc(VarianteEscalier $varianteEscalier) {
$em=$this->getEntityManager();
return $em->createQueryBuilder()
->delete(VarianteEscalierOptGc::class, "vogc")
->join("vogc.gardecorpsOption", "gco")
->where("vogc.varianteEscalier=:VARIANTE")
->andWhere("gco.type='option_gc_rampant' OR gco.type='option_gc_etage' OR gco.type='autres'")
->setParameters(array('VARIANTE'=>$varianteEscalier))
->getQuery()
->getResult();
}
当我执行它时,会出现以下错误:
[Semantical Error] line 0, col 94 near 'gco.type='option_gc_rampant'': Error: 'gco' is not defined.
这是我从这个查询中得到的 DQL:
DELETE AppBundle\Entity\VarianteEscalierOptGc vogc WHERE vogc.varianteEscalier=:VARIANTE AND (gco.type='option_gc_rampant' OR gco.type='option_gc_etage' OR gco.type='autres')
知道为什么当我尝试 delete
时 join
被忽略了吗?
来自 Doctrine 本身的开发者之一,答案是许多供应商在 INSERT
、UPDATE
和 DELETE
语句中不支持 JOIN
,而 Doctrine不包括不跨平台的功能(几乎一字不差他说的)。