2012-06-24 59 views
0

有沒有人知道爲什麼nativequery結果爲空?symfony2原生查詢爲空,但sql查詢有一個

$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"]) [] [] 

我使用的是另一個實體相同的功能,我得到正確的結果。 有沒有人有想法?

謝謝!

回答

1

您可能必須在您的ResultSetMapping中添加所有實體字段。

實際上,只有id,doctrine不能水合物體。

+0

我只是檢查一行是否存在,我不需要整個對象。相同的用法適用於其他實體。 : -/ –

+0

如果你不需要水合,爲什麼不直接使用DBAL? –

+0

我認爲這是檢查select語句對大小寫敏感的唯一方法。對於其他任何我需要的DBAL。你知道另一個案例來檢查與doctrine2案件敏感嗎? –