symfony2-如何在创建本机查询时一次添加所有字段结果


symfony2- How to add all the field results at once when we create native querys

在symfony2项目中,假设我们有一个本地查询和一个ResultSetMapping,如下所示:

$rsm = new ResultSetMapping;
$rsm->addEntityResult('User', 'u');
$rsm->addFieldResult('u', 'id', 'id');
$rsm->addFieldResult('u', 'name', 'name');
...
$query = $this->_em->createNativeQuery('SELECT id, name... FROM users', $rsm);

这几行很好,但我想知道是否可以一次添加所有字段,而不必键入每一行。

类似这样的东西:

$rsm = new ResultSetMapping;
$rsm->addEntityResult('User', 'u');
$rsm->addFieldResults('u');
...
$query = $this->_em->createNativeQuery('SELECT * FROM users', $rsm);

使用ResultSetMappingBuilder对象:

ResultSet映射的一个简单入门就是ResultSetMappingBuilder对象。这有几个好处:

  • 当实体元数据上的字段或关联发生变化时,构建器会自动更新ResultSetMapping

  • […]

$rsm = new ResultSetMappingBuilder($entityManager);
$rsm->addRootEntityFromClassMetadata('User', 'u');