1

私は 0-n の好みを持つエンティティ コーダーを持っています。私のクエリは、コーダー A という名前の 1 人が与えられた場合、少なくとも 1 つの共通の好みを持つすべてのコーダーを見つけることで構成され、A との共通の好みのカウントが降順で並べられます。これまでのところ、次のようになります。

query.from(coder, other)
     .where(
          coder.firstName.toLowerCase().eq(firstName)
          .and(coder.lastName.toLowerCase().eq(lastName))
          .and(other.ne(coder))
          .and(other.likings.any().in(coder.likings))
     )
     .orderBy(coder.likings.???);

QueryDSL でカスタムオーダーバイを指定する方法はありますか? に関連するものは見つかりませんでしたListPath。もしそうなら、グアバを使用して交差を計算できます。

前もって感謝します、

ロルフ

4

1 に答える 1

1

あなたは試すことができます

    .orderBy(coder.likings.size().desc());

それが機能しない場合は、追加の結合とグループ化を使用して明示的な集計を試してください。

于 2013-03-20T18:14:16.803 に答える