2

人形の価値のあるプロパティを持つエンティティがあります:

@Entity
public class Scenario{
  ..
  @ManyToMany
  List<Category> categories;
  ..
}

次のように、プロパティのScenariosクエリ結果をクエリして並べ替える方法はありますか?categories

select scenario from Scenario scenario order by scenario.category

より正確には、各Scenarioリストから最初のカテゴリを並べ替えて、残りのカテゴリを無視することに関心があります。JPQL / Criteriaクエリでそのようなことを行うことはできますか(たとえば、Comparator何らかの方法でカスタムを渡す)?

4

2 に答える 2

2

あなたの質問categoriesは、コレクションに定義された順序があることを意味します。インデックス付きのコレクションであり(つまり、注釈が付けられている@OrderColumn)、最初のコレクションでScenarios を並べ替える場合は、次のことができるはずです。nameCategory

select s from Scenario s left join s.categories c 
where index(c) = 0 order by c.name
于 2012-09-10T08:38:47.177 に答える
0

Hibernateアノテーションを使用してデータを並べ替えます。

@Sort(type = SortType.NATURAL)
private SortedSet<Category> sections = new TreeSet<Category>();

ここでは、Set固有の要素も必要なため、注釈を使用していました。

public class Category implements java.io.Serializable, Comparable<Category> {

    public int compareTo(Category category) {    
        // Your implementation of compareTo
    }
}
于 2012-09-10T08:44:12.620 に答える