2

私はphpcrに次の構造を持っています

/foo1
/foo1/childcollection1
/foo1/childcollection2
/foo1/childcollection3
/foo2
/foo2/childcollection1
/foo2/childcollcetion2
/foo2/childcollection3
/foo2/childcollection4
/foo3
/foo4
/foo4/childcollection1
/foo4/childcollcetion2
...

少なくとも 1 つの子コレクションを持つ「foo」ノードのみを取得する必要があります。

Childcollection は、foo ドキュメントで /** PHPCRODM\Children(fetchDepth=0) */ としてマップされます。

リポジトリの内部結合クエリに従うことでそれを行うことができました

$query = $this->createQueryBuilder('foo');
        $query->addJoinInner()
            ->right()->document('Path\PathBundle\Document\Childcollection', 'c')->end()
            ->condition()->child('c', 'foo');

その結果、少なくとも 1 つの childcollection ノードを持つ foo ドキュメントがありますが、ページ機能を追加すると

$query->setMaxResults($limit);

$limit のドキュメント数がありません。結果は、foo ドキュメント内の子コレクションの数によって異なります。

少なくとも 1 つの childcollection を持つノードのみをフェッチするクエリと、そのクエリにページ機能を追加できる場所を教えてください。

よろしくお願いします

4

0 に答える 0