使用联接删除 - 未定义别名



在我的数据库中进行更改后,我将删除另一个表中的一些相关条目。

我在存储库中进行了自定义查询:

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();
}

当我执行它时,我会得到以下错误:

[语义错误] 第 0 行,第 94 行靠近"gco.type="option_gc_rampant":错误:"gco"未定义。

这是我从此查询中获得的 DQL:

DELETE AppBundleEntityVarianteEscalierOptGc vogc WHERE vogc.varianteEscalier=:VARIANTE AND (gco.type='option_gc_rampant' OR gco.type='option_gc_etage' OR gco.type='autres')

关于为什么当我尝试delete时忽略join的任何想法?

从 Doctrine本身的开发者之一来看,答案是许多供应商不支持JOININSERTUPDATEDELETE语句中,并且 Doctrine 不包括非跨平台的功能(几乎逐字逐句地讲述了他所说的(。

查看完整讨论: https://github.com/doctrine/dbal/issues/2716

最新更新