2012-03-06 4 views
6

私は、ArrayCollectionフィールドを持つエンティティを持っています。注釈では、私はDoctrine 2.1:コレクションの集計フィールドをどのようにorderByするのですか?

@ORM\OrderBy({"somefield" = "DESC"})

を書くことができますし、私はそのエンティティから取得するコレクションは、自動的に注文されます。

集計フィールドで注文することができますか?

私の現在の問題:私は、コレクションのエンティティにおける2つのフィールドがあります。visited/shownvisitedshownを、私は評価指数によって、コレクションをソートしたいと思います。私は注釈でそれを書いてみましたが、それは有効なフィールドでなければならないと言います。私はDQLでこれを行う方法を知っていますが、アノテートでエンティティの宣言でそれを再作成する方法はわかりません。

ありがとうございます!

答えて

1

ORDER BY文では数学演算が必要です.SQLではORDER BY visited/displayed DESCとなります。注釈内ではできないと思います。

3

私はあなたの問題を理解しています。しかし

@ORM/OrderBy({"visited" = "DESC", "shown" = "DESC"})

は、結果として何を与えるのでしょうか?

http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/annotations-reference.html#annref-orderbyから:

[並べ替えでDQLスニペットは唯一の修飾されていない、引用符で囲まれていないフィールド名の、オプションのASC/DESC位置の文から成ることが許可されています。複数のフィールドはカンマ(、)で区切られています。参照されるフィールド名は、@ManyToManyアノテーションまたは@OneToManyアノテーションのtargetEntityクラスに存在する必要があります。

+1

いいえ、彼はORDER BY文で数学演算を必要としません - SQLでは 'ORDER BY visited/shown DESC'となります。注釈内で行うことは不可能だと思います。 –

+0

これは機能します! – coder4show

+0

@MaciejPyszyńskiあなたは正しいです、それは現時点では不可能です、答えとして投稿できるのですか?私はそれを受け入れることができますか? –

関連する問題