2012-08-11 40 views
0

我有兩個實體,用戶和評論,他們都是POJO的。 評論有對用戶的參考。休眠@orderby似乎不工作

@ManyToOne 
@JoinColumn(name = "user_id") 
private User user; // saves the User's id as a foreign key to Comment table 

評論還有一個字段addedDate是一個日期。

@OrderBy 
@Column(name = "date_added") 
private Date addedDate; 

當Hibernate retreives從我要評論通過addedDate訂購,但遺憾的是它由用戶定貨數據庫中的數據。 即使我使用@OrderBy(javax.persistence.OrderBy)註釋字段「addedDate」,它似乎沒有任何作用。

我想是這樣的: 用戶X earlyComment, userY earlyComment, 用戶X lateComment, userY lateComment,

但我得到的是這樣的: 用戶X earlyComment, 用戶X lateComment, userY earlyComment, userY lateComment,

我在這裏看起來類似的問題,但他們都沒有發現解決了我的問題。
我做錯了什麼?任何幫助是極大的讚賞。

+0

你如何檢索評論?你在做一個查詢,還是他們是集合的一部分? – 2012-08-11 10:16:39

回答

2

首先,我認爲@OrderBy註釋應該適用於當你有一個Collection作爲memeber,以便可以對收集元素進行排序。

因此,在外鍵引用上添加@OrderBy對於單個對象排序並不重要。

Order By

此註解指定集合值關聯的在該點的元素的順序時,關聯檢索。

現在爲您的解決方案,您需要在查詢數據庫時通過顯式子句添加順序。

+0

感謝您的回答 – 2012-08-12 18:06:10

+0

「現在,您的解決方案需要在查詢數據庫時通過顯式子句添加順序。」 這是正確的路要走。 – 2012-08-12 18:08:04