0

ネイティブクエリの結果がnullである理由を誰か知っていますか?

$rsm = new ResultSetMapping;
$rsm->addEntityResult('AcmeTestBundle:event', 'e');
$rsm->addFieldResult('e', 'id', 'id');

$query = $this->getEntityManager()->createNativeQuery('SELECT id FROM event WHERE publickey COLLATE latin1_general_cs = ?', $rsm);
$query->setParameter(1, $eventkey);

return $query->getSingleResult();

mysql で直接クエリを実行すると、正しい結果が得られます。これは、コンソールから作成されたクエリです。

[2012-06-24 18:08:08] doctrine.DEBUG: SELECT id FROM event WHERE publickey COLLATE latin1_general_cs = ? (["key"]) [] []

別のエンティティで同じ関数を使用していますが、正しい結果が得られます。誰にもアイデアはありますか?

ありがとうございました!

4

1 に答える 1

2

おそらく、すべてのエンティティ フィールドを ResultSetMapping に追加する必要があります。

実際、id だけでは、doctrine はオブジェクトをハイドレートできません。

于 2012-06-24T16:32:36.360 に答える