2009-04-30 66 views
0

我在Java中使用Hibernate。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的「hibernate reverse engineering」。它自動創建DAO,摘要和pojo類。

一切工作得很好。當我請求一個Country對象時,Hibernate檢索它,並填寫CountryID爲country.id的城市。

還是一切正常,但當我列出的「城市」屬性(java的設置類型),然後打印出我得到這個無序列表中的所有城市的標識:

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

我應該在哪裏編輯得到城市的有序我從CountryDAO類獲取國家實例時的ID?

回答

1

您是使用XML映射還是註解?

通常,在映射集合上有一個「order-by」屬性,可讓您指定一個列來按順序排序集合,並按順序排列asc或desc。

看到這個頁面:

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

搜索「訂單按」 - 你需要找到你的榜樣適當的集合的映射。

+0

安迪,謝謝你的考慮;但我仍然得到例外。你能檢查一下有什麼問題嗎? http://pastebin.ca/1410416 – 2009-05-02 16:03:09

3

您可能會嘗試使用Hibernate的Criteria API來提供這樣的約束。以下片段將按ID升序排列帖子。

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

這已經有一段時間了,我還沒有使用過Hibernate,如果有的話請忽略語法錯誤。 – 2009-04-30 22:59:24