JPA:按集合值属性排序查询结果?

时间:2012-09-10 06:53:22

标签: java jpa orm jpa-2.0

我有一个具有dollection-valued属性的实体:

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

有没有办法查询Scenarios并为categories属性订购查询结果,如下所示:

select scenario from Scenario scenario order by scenario.category

更确切地说,我们有兴趣从每个Scenario列表中排序第一个类别,而忽略其余的类别。我们可以在JPQL / Criteria查询中执行此类操作(例如,以某种方式传递自定义Comparator)吗?

1 个答案:

答案 0 :(得分:2)

您的问题意味着categories集合具有已定义的顺序。如果它是一个索引集合(即它用@OrderColumn注释)并且您希望按Scenario的{​​{1}}排序name,那么您应该能够执行以下操作:

Category