2012-05-21 83 views
0

我生成NativeQuery的SQL,這是結果的SQL:學說2.0 NativeQuery ResultSetMapping的計數(ID)

SELECT COUNT(號),TOT,created_at來自物業WHERE created_at '之間的201205.01億' AND '20120521235959'GROUP BY YEAR(created_at),MONTH(created_at),DAY(created_at);

這是我ResultSetMapping:

$rsm = new \Doctrine\ORM\Query\ResultSetMapping; 
$rsm->addEntityResult('Entity\Property', 'p'); 
$rsm->addFieldResult('p','count(id)','tot'); // <-- this don't work 
$rsm->addFieldResult('p','created_at','created_at'); 

結果運行上面的查詢直接在MySQL是確定的:

tot created_at 
11 2012-05-02 11:23:25 
11 2012-05-08 14:56:40 
152 2012-05-16 14:43:46 
5 2012-05-17 16:26:31 
29 2012-05-18 14:55:33 

但結果陣列的TOT別名不存在!

的問題是:

我如何正確設置ResultSetMapping爲數量(ID)

回答

0

我會嘗試:

$rsm->addFieldResult('p', 'tot', 'tot'); 

爲您列被重命名爲COUNT(id) AS tot。如果刪除tot別名,您可以使用您的原始代碼:

$rsm->addFieldResult('p', 'COUNT(id)', 'tot');