在我的数据库中进行更改后,我将删除另一个表中的一些相关条目。
我在我的存储库中进行了自定义查询:
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')
在尝试使用join
delete
答案 0 :(得分:1)
来自Doctrine本身的开发人员之一,答案是许多供应商不支持JOIN
,INSERT
和UPDATE
语句中的DELETE
,而且Doctrine不支持包括非跨平台的功能(几乎是他所说的逐字逐句)。