【问题标题】:Delete with join - Alias not defined删除并加入 - 未定义别名
【发布时间】:2018-05-16 15:15:46
【问题描述】:

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

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

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 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 吗?

【问题讨论】:

标签: symfony dql symfony-3.4


【解决方案1】:

来自 Doctrine 本身的一位开发者的回答是,许多供应商在 INSERTUPDATEDELETE 语句中不支持 JOIN,并且 Doctrine 不包含非跨平台的功能(几乎是逐字逐句)。

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

【讨论】:

    猜你喜欢
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 2019-02-25
    相关资源
    最近更新 更多