没有实体的关联表上的CreateQueryBuilder

时间:2019-01-07 06:41:03

标签: symfony doctrine-orm

我在一个实体内部有一个关联表,该表本身没有实体。我可以对其执行原始查询或本机查询,但是我想在其上使用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();

谢谢。

1 个答案:

答案 0 :(得分:0)

没有实体就无法使用Doctrine ORM。 QueryBuilder只是向下转换为DQL。 DQL对您的对象模型进行查询。

说文档

  

您需要考虑DQL作为对象模型的查询语言,   不适合您的关系模式。

在此处Doctrine Query Language

检查文档