Порядок сохранения списка в JPA - PullRequest
30 голосов
/ 15 апреля 2010

У меня следующий вопрос о JPA:

Можно ли сохранить порядок элементов в списке java.util.List? В моем приложении важен порядок, в котором я помещаю элементы в списки, но после того, как я получу эти коллекции из базы данных, порядок не такой (как ожидалось). Можете ли вы показать мне, как справиться с этой проблемой?

P.S. В сущностях, которые я помещаю в коллекции, нет поля, по которому я могу их упорядочить.

Розен

Ответы [ 3 ]

36 голосов
/ 15 апреля 2010

В JPA 1 есть несколько хакерских способов сделать это, но проще всего переключиться на поставщика JPA 2. Поддержка аннотаций @OrderColumn - это то, что вы ищете. У Eclipselink есть обучающее руководство по его использованию .

2 голосов
/ 24 февраля 2014

Вы можете сохранить порядок элементов в java.util.List. В JPA 2.0 есть хороший способ сохранить порядок элементов с помощью аннотации @OrderColumn.

За подробностями вы можете обратиться по этой ссылке Столбец заказа (JPA 2.0)

2 голосов
/ 15 апреля 2010

JPA имеет 2 типа списков. В JPA1 есть «упорядоченный список» (это то, что вы видите, порядок, определенный некоторым предложением SQL). В JPA2 вы можете иметь «упорядоченные списки» или, альтернативно, «индексированные списки» (где сохраняется порядок создания) ... упомянутый @OrderColumn. Любая реализация JPA2 должна будет поддерживать это, например, DataNucleus.

JDO имеет индексированные списки со дня 1

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