如何在 Doctrine ORM 中使用 createQueryBuilder 选择特定列?
Posted
技术标签:
【中文标题】如何在 Doctrine ORM 中使用 createQueryBuilder 选择特定列?【英文标题】:How can I select specific Columns with createQueryBuilder in Doctrine ORM? 【发布时间】:2012-09-22 12:15:11 【问题描述】:我正在使用 Doctrine createQueryBuilder()
在 Symfony2 中构建查询。但是,我不想占用该实体中的所有列。如何只选择 ID 和名称?
$query = $this->getEntityManager()->createQueryBuilder();
$query
->select('d')
->from('AcmeBundle:Demo', 'd')
->leftjoin('d.otherEntity', 'o');
$query->setMaxResults(10);
$results = $query->getQuery()->getResult();
非常感谢,
【问题讨论】:
***.com/questions/9465353/… 其实ORM就是Doctrine2。 Symfony 是一个网络框架。 【参考方案1】:尝试关注,
$fields = array('d.id', 'd.name', 'o.id');
//$fields = 'partial d.id, name, partial o.id'; //if you want to get entity object
$query = $this->getEntityManager()->createQueryBuilder();
$query
->select($fields)
->from('AcmeBundle:Demo', 'd')
->leftjoin('d.otherEntity', 'o');
$query->setMaxResults(10);
$results = $query->getQuery()->getResult();
【讨论】:
它会水合查询结果吗? 有没有办法从 setParameter 设置字段?partial alias.comma, fields
在 symfony 2.4 上对我不起作用。它应该工作还是只适用于较新的版本?
@hardik 在此处查看“水合模式”doctrine-project.org/projects/doctrine-orm/en/2.9/reference/…
@Vandervals Doctrine 2.10 或更高版本。见doctrine-project.org/projects/doctrine-orm/en/2.10/reference/…以上是关于如何在 Doctrine ORM 中使用 createQueryBuilder 选择特定列?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Doctrine ORM 查询中查找与别名相关的表?
如何将 Doctrine ORM 默认跟踪策略更改为延迟显式