我们有以下JPA课程:
@Entity
class Supplier {
// ... id property etc.
@OneToMany
@OrderBy("someProperty")
private List<Region> regions;
}
这在正常情况下工作正常。但是,我们有一些多语言数据,其中的值存储在nameEn
,nameDe
,nameZh
等属性中。要使用的确切属性取决于登录用户。例如,德语用户应该看到区域好像是用@OrderBy("nameDe")
注释的。
我怎样才能做到这一点?
我知道我可以在加载后在代码中对集合进行排序,但这会使结果分页变得非常困难。
答案 0 :(得分:4)
您可以在java中对它们进行排序。可能在吸气剂中:
List<Region> getRegions(){
sorted = new List<Regions>(regions);
Collections.sort(sorted, new RegionComparator(getUserLanguage()));
return sorted;
}