如何在JPA中动态排序集合属性?

时间:2010-12-08 17:20:23

标签: java jpa

我们有以下JPA课程:

@Entity
class Supplier {
  // ... id property etc.

  @OneToMany
  @OrderBy("someProperty")
  private List<Region> regions;
}

这在正常情况下工作正常。但是,我们有一些多语言数据,其中的值存储在nameEnnameDenameZh等属性中。要使用的确切属性取决于登录用户。例如,德语用户应该看到区域好像是用@OrderBy("nameDe")注释的。

我怎样才能做到这一点?

我知道我可以在加载后在代码中对集合进行排序,但这会使结果分页变得非常困难。

1 个答案:

答案 0 :(得分:4)

您可以在java中对它们进行排序。可能在吸气剂中:

List<Region> getRegions(){
  sorted = new List<Regions>(regions);
  Collections.sort(sorted, new RegionComparator(getUserLanguage()));
  return sorted;
}