Как я могу динамически отсортировать свойство коллекции в JPA? - PullRequest
8 голосов
/ 08 декабря 2010

У нас есть следующий класс JPA:

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

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

Это нормально работает в обычном случае. Однако у нас есть многоязычные данные, где значения хранятся в таких свойствах, как nameEn, nameDe, nameZh. Точное свойство для использования зависит от вошедшего в систему пользователя. Например, говорящий по-немецки пользователь должен видеть регионы, как если бы они были помечены @OrderBy("nameDe").

Как мне этого добиться?

Мне известно, что я могу отсортировать коллекцию в своем коде после ее загрузки, но это затрудняет разбиение результатов на страницы.

1 Ответ

4 голосов
/ 09 декабря 2010

Вы можете отсортировать их в Java.Возможно в геттере:

List<Region> getRegions(){
  sorted = new List<Regions>(regions);
  Collections.sort(sorted, new RegionComparator(getUserLanguage()));
  return sorted;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...