2012-03-11 6 views
0

複数の親エンティティに関連してup/down票を実装する最適な方法を見つけようとしています。Doctrine 2投票エンティティを最適化する

現在、サブクラスで親関係を持つInheritanceType("SINGLE_TABLE")を投票に使用しています。私はまた、fetch="EXTRA_LAZY"を使用しています - 主に、親エンティティの観点から投票をカウントするときに、完全な投票エンティティをロードせずにcount()を実行できます。

私の問題は、親関係ごとに別々のUpVoteおよびDownVoteエンティティクラスを実装するのではなく、代わりに投票ベースクラス内の値フィールドを使用することです。好ましくは、count()と同様に、lazyloaded ArrayCollection上で$qb->expr()->sum()を実行したいと考えています。このように、スカラーとして、エンティティマネージャを持たない親エンティティのみを使用して直接データベースからスカラーとして返すことができ、ビュースクリプトのE.Gを合計するために1つの投票エンティティをロードする必要がありません)

これはサポートされていますか? (または、私の望む効果を達成するにはどうすればいいですか?)

Doctrine 2を使用して投票する代わりのベストプラクティスの例があります。

* 編集は:固定LAZY - カウントしようとしたとき> EXTRA_LAZY

答えて

1

レイジーローディングは、まだすべてのオブジェクトをロードします。 EXTRA_LAZYを使用すると、オブジェクトをカウントするときにカウントステートメントが発行されます。

+0

私の質問 –

+0

には本当に便利なコメントがありますが、デフォルトの動作を使用するのではなく、DQLとリポジトリを使用することを検討しましたか? –

+0

私の特定のケースでは、エンティティマネージャーを私のビューに注入する必要があります。これは本当に嫌いです –

関連する問題