1

ネイティブ クエリを実行しようとすると、Doctrine の ResultSetMapping で問題が発生します。

$sql = "SELECT id, thesis "
     . "FROM activity p "
     . "WHERE MATCH (thesis) AGAINST ('Gun') ";

$rsm = new \Doctrine\ORM\Query\ResultSetMapping;
$rsm->addEntityResult('activity\models\Entities\Opinion', 'p');
$rsm->addFieldResult('p', 'id', 'id');
$rsm->addFieldResult('p', 'thesis', 'thesis');

$query = $this->_em->createNativeQuery($sql, $rsm);

$results = $query->getResult();

return $results;

まず第一に、データベースに世界の「銃」を含むエントリがあり、それをデータベースにないものに変更するとエラーが発生するため、SQL側が何かを見つけているという事実を知っています.

結果セットマッピング コードは残ります。エラーは発生していませんが、getResult() によって返される配列は空白です。これは、マッピングが間違っているのではないかと疑っています。

問題が何であるかをさらに特定するために私ができることについて何か提案はありますか?

4

1 に答える 1

1

問題は、クエリが 4 文字未満の場合に MATCH AGAINST が機能しないことです。問題は結局SQLでした:(

結果セットマッピングは完全に機能しています。

于 2012-08-12T17:49:43.680 に答える