Php 将本机查询映射到非实体模型类

Php 将本机查询映射到非实体模型类,php,doctrine-orm,doctrine,Php,Doctrine Orm,Doctrine,我尝试在条令中使用本机查询,现在创建了一些非常简单的东西: $rsm = new ResultSetMapping(); $rsm->addEntityResult('ObjectA', 'a'); $rsm->addFieldResult('a', 'id', 'id'); $query = $em->createNativeQuery('SELECT * FROM table a', $rsm); 当我尝试使用这段代码时,我得到一个错误,即ObjectA不是有效的实体或映

我尝试在条令中使用本机查询,现在创建了一些非常简单的东西:

$rsm = new ResultSetMapping();
$rsm->addEntityResult('ObjectA', 'a');
$rsm->addFieldResult('a', 'id', 'id');
$query = $em->createNativeQuery('SELECT * FROM table a', $rsm);
当我尝试使用这段代码时,我得到一个错误,即ObjectA不是有效的实体或映射的超类。这是完全正确的。 我的问题是:是否有任何方法可以将本机查询的结果复制到任意类(不是实体),但仍然可以使用用户原则的工具来执行

注意:我试图避免使用较低级别的PDO


谢谢。

在文档和源代码中都没有类似的内容。
原则\ORM\Query\ResultSetMapping
(有些功能没有文档记录)。
我将使用查询结果并将其映射回对象。大概是这样的:

$rsm = new ResultSetMapping();
$rsm->addScalarResult('a', 'a');
$rsm->addScalarResult('b', 'b');
$query = $em->createNativeQuery('SELECT a, b FROM table LIMIT 1', $rsm);
$result = $query->getSingleResult();
$a = new ObjectA();
$a->setA($result['a']);
// or
$a = new ObjectA($result); // with mapping passed to the constructor

您可能需要选择您定义的特定字段,因此请尝试以下操作:
$query=$em->createNativeQuery('selectid fromtable a',$rsm)它没有帮助。。。看起来我必须将类定义为一个实体。这是可行的,但这意味着我需要自己将其转换为一个对象。对我们来说不是巴斯特的案子。。。