7

逆アソシエーションが存在しないエンティティを取得したい (1:1 アソシエーションで)

エラーが発生します:

逆側への単一値関連パス式は、DQL クエリではサポートされていません。代わりに明示的な結合を使用してください。

クエリ:

$query = $this->getEntityManager()->createQuery("
                SELECT DISTINCT(p.date)
                FROM MainBundle:Price p
                WHERE p.emaPrice IS NULL
                ORDER BY p.date ASC
            ")
            ->setMaxResults(1);
        $date = $query->getOneOrNullResult();

私はエラーを理解していますが、それを修正することに本当にこだわっています。明示的なJOINを追加する必要があることを読みましたが、追加しましたが、まだ運がありません。

結合を使用してクエリを編集します。

$query = $this->getEntityManager()->createQuery("
        SELECT DISTINCT(p.date)
        FROM MainBundle:Price p
        JOIN MomentumBundle:EmaPrice ep
        WITH ep.id = p.emaPrice
        WHERE p.emaPrice IS NULL
        ORDER BY p.date ASC
    ")
    ->setMaxResults(1);
$date = $query->getOneOrNullResult();
4

1 に答える 1

6

@Flip と @lifo に感謝します。これを解決するための多大なサポートを提供してくれました。

$query = $this->getEntityManager()->createQuery("
        SELECT DISTINCT(p.date)
        FROM MainBundle:Price p
        LEFT JOIN MomentumBundle:EmaPrice ep
        WITH ep.price = p.id
        WHERE ep IS NULL
        ORDER BY p.date ASC
    ")
    ->setMaxResults(1);
$date = $query->getOneOrNullResult();
于 2013-08-05T14:03:37.180 に答える