DQL コード:
$dql = "SELECT a, FIELD(a.id, ".$implodedIds.") as HIDDEN field "
. "FROM \activity\models\Entities\Activity a "
. "WHERE a.id IN (".$implodedIds.") "
. "ORDER BY field ASC ";
$em = \Zend_Registry::get('em');
$doctrineConfig = $em->getConfiguration();
$doctrineConfig->addCustomStringFunction('FIELD', 'DoctrineExtensions\Query\Mysql\Field');
$query = $em->createQuery($dql);
$docResults = $query->getResult();
エンティティ構造の概要: (単一テーブルの継承)
Activity
Opinion extends Activity
Comment extends Activity
Counter extends Activity
この dql コードはアクティビティ エンティティを返していますが、意見、コメント、およびカウンターに返されるエンティティを自動的に識別したいと考えています。Doctrine は他の例では問題なくこれを行いますが、何らかの理由でここではそうではありません。(つまり、アクティビティを要求するクエリを作成する他のケースでは、意見、コメント、およびカウンターの配列が得られます)
今回は自動的に差別しない理由を誰か教えてもらえますか?