2009-04-30 6 views
0

Я использую Hibernate с Java.MyEclipse + Hibernate не упорядочивает наборы свойств по ID?

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

 
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.

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

Тем не менее все нормально, но когда я список «города» свойство (Java типа Set), а затем распечатать идентификаторы всех городов, которые я получил этот неупорядоченный список:

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

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

ответ

1

Вы используете XML-сопоставление или аннотации?

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

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

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

Искать «порядок-бай» - вам нужно найти подходящее отображение коллекции для вашего примера.

+0

Andy, спасибо за ваше внимание; однако я все еще получаю исключение. Не могли бы вы проверить, что с ним не так, пожалуйста? http://pastebin.ca/1410416 –

3

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

List posts = session.createCriteria(Post.class) 
    .addOrder(Order.asc("id")) 
    .list(); 
+0

Это было какое-то время, когда я не использовал Hibernate, пожалуйста, игнорируйте ошибки синтаксиса, если они есть. –

+0

отличный ответ спасибо – nimcap