SELECT DISTINCT ON (..)
PostgreSQL がサポートする構造は、Doctrine の中心であるオブジェクト リレーショナル モデル (ORM) の外にあることをお勧めします。または、おそらく別の言い方SELECT DISTINCT ON (..)
をすれば、Doctrine がコーディングしていない SQL 実装ではまれなためです。
動作しない実際のロジックに関係なく、Doctrine の " Native SQL " を試すことをお勧めします。クエリの結果を ORM にマップする必要があります。
NativeQuery
ネイティブの SELECT SQL ステートメントを実行し、結果を Doctrine エンティティまたは Doctrine がサポートするその他の結果フォーマットにマップできます。
このマッピングを可能にするには、結果のどの列がどのエンティティ プロパティにマップされるかを Doctrine に記述する必要があります。この説明は、オブジェクトによって表されResultSetMapping
ます。
この機能を使用すると、高度にベンダー最適化された SQL やストアド プロシージャなどのオブジェクトに任意の SQL コードをマップできます。
SELECT DISTINCT ON (..)
私が思うに、ベンダー最適化 SQLに該当するため、使用NativeQuery
するとアクセスできるはずです。