私はsfPropelORMPluginを使用します。 Webページごとに1つのオブジェクトを操作すると、Lazyloadは正常です。しかし何百というものがあれば、私は何百もの別々のDBクエリーを取得します。私はlazyloadを完全に無効にするか、特に重いページで必要な列を無効にしたいが、これまでのところ見つからなかった。Symfonyの実行時にモデルlazyloadnessを変更するには?
1
A
答えて
0
読み込みたい列を設定できるようにピアにユーティリティメソッドを追加しました。このタイプのDBクエリに "疑似カラム"を使用する。また、私はこの "マークアップ"を理解するために水和物()をオーバーライドしました。データが水和されているにもかかわらず、symfonyはそれを理解せず、あなたが意図したとおりに使用することができないことを知るまで、すべてがうまくいっていました。
サイトが負荷が高いため、PS結合はオプションとして考えられませんでした。
1
あなたはクエリを作成するときにすべての関係をjoin
する必要があります。そうすれば、すべてのデータを1つのクエリで取得できます。注意:joinWithRelation()
を使用する必要があります。Relation
は、関連するテーブル名です。
0
ウィリアム・デュランの答えを精緻化すると、あなたの関係に関連するすべてのオブジェクトをあらかじめロードする必要があるPropel関数doSelectjoinAll()を見てください。メモリに関連しているので、これは高価になる可能性があることを覚えておいてください。
もう1つの方法は、必要な結合でカスタム条件を作成し、次に手動ハイドレート手法を使用して基底オブジェクトに追加する方法です。私は、必要なデータが、オブジェクトに正確にマッピングされていない集計や他の列を使用している場合、これを頻繁に行います。ハイドレートの例はたくさんあります。
関連する問題
- 1. 含まれているモデルを実行時に変更する
- 2. 実行時にテーマを変更する
- 3. 実行時にアンドロイドで実行時にEditTextのテキストを変更する方法
- 4. 実行時にEFモデルを変更して新しいエンティティを作成する
- 5. 実行時にpropertygridグリッドアイテムの動作を変更するには?
- 6. 実行時にgridviewセルの画像を変更するには?
- 7. 実行時にアンドロイドアプリウィジェットのサイズを変更するには?
- 8. ブラックテーマを実行時にホワイトテーマに変更するには?
- 9. Inno Setup:実行時にメッセージを変更するには?
- 10. 実行時にslf4jレベルを変更するには?
- 11. argparseモジュール - 実行時にヘルプフォーマットを変更するには?
- 12. 実行時に画像ボックスイメージを変更するには
- 13. 実行時にCurrentCultureを変更するには?
- 14. Jquery:バインドロード+変更を同時に実行
- 15. 実行時のアニメーションを変更する
- 16. 実行時のレイアウトテンプレートを変更する
- 17. 実行時にダイアログのタイトルを変更する方法は?
- 18. 実行時にListViewの行項目書体を変更する
- 19. 実行時にJList行の色を変更する
- 20. WCF:セットアップ中または実行時にbaseAddressを変更する
- 21. データベースからのタペストリーテンプレートまたは実行時に変更する
- 22. Delphi XE2/Intraweb12 - 実行時にポートを変更する/グローバル変数
- 23. 実行時にダイナミックにテキストカラーアプリケーションを変更する
- 24. 実行時にスタイルを変更する(トリガーを追加する)
- 25. 変更実行時のコンパイルバージョンは
- 26. 実行時のmaxZoomオプションをOpenlayersのol.Viewに変更する3
- 27. 実行時にJMeterのテストプランのスレッド数を変更する
- 28. 実行時にiOS 4のアプリケーションのアイコンを変更する
- 29. ストーリーボードのデフォルトのビューコントローラーを実行時に変更する
- 30. アルゴリズムの実行時間をモデル化するには?