MyEclipse + Hibernate не упорядочивает наборы свойств по идентификатору? - PullRequest
0 голосов
/ 01 мая 2009

Я использую Hibernate с Java.

У меня есть две таблицы, которые связаны с внешними ключами.

Table: country
Fields: ID, Name
POJO class name : Country
POJO class properties: id, name, cities

Table: city
Fields: ID, Name, CountryID
POJO class name : Country

Затем я использую «спящий режим обратного инжиниринга» MyEclipse. Он автоматически создает DAO, тезисы и классы pojo.

Все работает очень хорошо. Когда я запрашиваю объект "Страна", Hibernate извлекает его и заполняет свойство "города" городами, в которых CountryID имеет значение country.id.

Все еще хорошо, но когда я перечисляю свойство «города» (тип набора Java), а затем распечатываю идентификаторы всех городов, я получаю этот неупорядоченный список:

ID: 5
ID: 1
ID: 4
ID: 2

Где я должен редактировать, чтобы получить города, упорядоченные по идентификатору, когда я получаю экземпляры Country из класса CountryDAO?

Ответы [ 2 ]

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

Вы можете попытаться использовать Criteria API Hibernate, чтобы обеспечить такое ограничение. Следующая часть будет сортировать сообщения по возрастанию.

List posts = session.createCriteria(Post.class)
    .addOrder( Order.asc("id") )
    .list();
1 голос
/ 01 мая 2009

Используете ли вы XML-отображение или аннотации?

Обычно в сопоставленных коллекциях имеется атрибут «упорядочить», который позволяет указать столбец для упорядочения коллекции и упорядочения по asc или desc.

Смотрите эту страницу:

http://docs.jboss.org/hibernate/stable/core/reference/en/html/collections-mapping.html

Поиск "order-by" - вам нужно найти соответствующее отображение коллекции для вашего примера.

...