私は現在Symfony2とDoctrine2に最近のsymfony 1.4アプリケーションを移植しています。私がマッピング情報を変換すると(私たちはYAMLファイルを使用する)、最初に気がついたことは、ユーザオブジェクトのクエリが無限ループに入ったことです。 私は団体と遊んで、私は周期的なものを持っていることがわかりました。私はデバッグの目的でそれを削除し、なぜそれらがすべての関連付けを一巡するのか疑問に思っていました。私はちょうどすべてのユーザーを求めていました。Doctrine2のデフォルトとして遅延読み込みを設定するには?
今日私は別のオブジェクトで同じ問題を再現しましたが、930のクエリの後で停止し、無限ループはありませんでした。 Doctrine2は、オブジェクトを生成するときに、各関連のすべてのオブジェクトを照会しているようです。プロキシも、遅延ロードもありません。
fetch: LAZY
をそのアサーションとボイルアで有効にすると、自動母集団は停止しました。 しかし、モデルには50を超える関連があり、この行をすべてに追加する必要はないので、これをデフォルトの動作として使用したいと思います。
Doctrine 2のデフォルトとしてレイジーローディングをアクティブにするにはどうすればよいですか?
実際には、問題の一部である可能性がありますが、私は決して関連オブジェクトにアクセスしていません。あなたの例では、私はブログを繰り返して、ブログのタイトルをエコーします。しかし、Doctrine(またはSymfony)では、各ブログのすべての投稿に1つのクエリが入力されます。 私の一部にいくつかの設定があると、各オブジェクトを不必要に完全に埋めるための水分調整プロセスが発生したと思われます。 – Yeti
モデル内の循環参照はそれと関係しているようです。私は現在、最小限の例を編集中です。 – Yeti
ブログ – ken