Как отсортировать список по свойству объектов в коллекции? - PullRequest
3 голосов
/ 24 мая 2009

Таким образом, я смирился с тем, что не могу надежно использовать порядок List, потому что hibernate переворачивает его, и все говорят, что не делают этого, поэтому я добавил поле в свой класс в качестве позиции. У меня есть:

@Entity
class Procedure {
...
int procedureId;
List<Task> tasks;
...
}

@Entity
class Task {
...
int taskId;
int position;
}

Теперь я не знаю, как подходить к взаимодействию со списком. Должен ли я просто отсортировать его по позиции, когда я сначала получу его из базы данных и начну работать с ним, а затем я могу оставить весь код реорганизации, который я уже написал, а затем просто сбросить все позиции при сохранении в порядке список, чтобы я мог прибегнуть, когда вернусь?

ПЕРЕЙТИ К АКТУАЛЬНОМУ ВОПРОСУ ЗДЕСЬ:

Кажется, это лучший подход, но КАК отсортировать Список по свойству Объектов в коллекции?

Ответы [ 2 ]

6 голосов
/ 24 мая 2009

Например, для сортировки по позиции вы можете использовать

java.util.Collections.sort(tasks, new Comparator<Task>() {
@Override
public int compare(Task t1, Task t2) {
    return t1.getPosition() - t2.getPosition();
});

Юваль = 8 -)

3 голосов
/ 24 мая 2009

Если вы хотите, чтобы порядок списков сохранялся Hibernate, вам, вероятно, следует использовать <list-index> для сопоставления столбца индекса, как описано в 6.2.3 Индексированные коллекции , вместо добавления его в качестве поля Задача и сортировка самостоятельно.

Таким образом, вашему Java-коду вообще не нужно беспокоиться о значениях индекса. Список будет правильно отсортирован при возврате из Hibernate, и Hibernate позаботится об обновлении индексов при изменении списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...