我有一个关联表,它本身没有实体,在实体内。我可以对它进行原始或本机查询,但我想在其上使用createQueryBuilder。我该怎么做?
以下是我要转换为createQueryBuilder的原始查询:
$sql = 'SELECT t.* FROM tasks t LEFT JOIN question_tasks qt ON t.id = qt.task_id WHERE qt.question_id = :qtId';
$rsm = new ResultSetMappingBuilder($this->_em);
$rsm->addRootEntityFromClassMetadata(Task::class, 't');
$query = $this->_em->createNativeQuery($sql, $rsm);
$query->setParameter('qtId', $questionId);
return $query->getResult();
谢谢。
没有实体的教义ORM是不可能的。QueryBuilder 只是向下转换为 DQL。DQL 对对象模型进行查询。
说文档
您需要将 DQL 视为对象模型的查询语言, 不适用于您的关系架构。
在此处查看文档 原则查询语言