Ответ 1
В JPA 1 есть некоторые хакерские способы сделать это, но проще всего перейти на поставщика JPA 2. Поддержка аннотаций @OrderColumn - это то, что вы ищете. В Eclipselink есть хороший учебник о том, как его использовать.
У меня есть следующий вопрос о JPA:
Можно ли сохранить порядок элементов в java.util.List? В моем приложении порядок, в котором я помещаю элементы в списки, важен, но после того, как я получаю эти коллекции из базы данных, порядок не совпадает (как и ожидалось). Можете ли вы показать мне способ решения этой проблемы?
P.S. Не существует поля в объектах, которые я помещал в коллекции, с помощью которых я могу их заказать.
Розен
В JPA 1 есть некоторые хакерские способы сделать это, но проще всего перейти на поставщика JPA 2. Поддержка аннотаций @OrderColumn - это то, что вы ищете. В Eclipselink есть хороший учебник о том, как его использовать.
JPA имеет 2 типа списков. В JPA1 есть "упорядоченный список" (это то, что вы видите, упорядочивание определяется некоторым предложением SQL). В JPA2 вы можете иметь "упорядоченные списки" или, альтернативно, "индексированные списки" (где сохраняется порядок создания)... упоминается @OrderColumn. Любая реализация JPA2 должна поддерживать это, например DataNucleus.
JDO имеет индексированные списки со дня 1
Вы можете сохранить порядок элементов в java.util.List. В JPA 2.0, есть хороший способ сохранить порядок элемента, используя аннотацию @OrderColumn.
Подробнее см. ссылку Колонка заказа (JPA 2.0)