次の関係を持つエンティティShop
と関連するエンティティがあります。ShopProduct
/**
* @ORM\OneToMany(targetEntity="ShopProduct", mappedBy="shopid", fetch="EXTRA_LAZY")
*/
private $products;
小枝のテンプレートで のカウントにアクセスしたいproducts
ので、アクセスします
{{ entity.getProducts().count }}
しかし、symfony2 プロファイラーを使用してクエリの数と内容を確認すると、 (ドキュメントCOUNT
に基づいて) 予想されるのではなく、完全な選択が発行されていることがわかります。
各 に対して完全な選択を発行するShop
と、メモリ使用量が 250Mb 以上になり、ページの読み込み時間が 30 秒以上かかりますが、これは望ましくありません。
を追加した後fetch="EXTRA_LAZY"
、教義のキャッシュをクリアしました。
間違ったアプローチを使用したり、ドキュメントを誤解したりして、何かを見落としていますか?
[編集]
doctrine/annotations v1.1
doctrine/cache v1.0
doctrine/collections v1.1
doctrine/common 2.4.0-RC1
doctrine/data-fixtures dev-master eef10f6
doctrine/dbal 2.3.3
doctrine/doctrine-bundle v1.2.0-beta1
doctrine/doctrine-fixtures-bundle dev-master 275540d
doctrine/doctrine-migrations-bundle dev-master 99c0192
doctrine/inflector v1.0
doctrine/lexer v1.0
doctrine/migrations dev-master e1f6efc
doctrine/orm 2.3.3