我有一個人有一套書的人。在特定情況下進行有序或排序的收集是沒有意義的。休眠:訂購一套
現在說我有一個搜索頁面,其中有一個表格,顯示Person和Book的連接。我希望能夠通過來自Person和Book的字段對結果進行排序,然後從Hibernate中獲取List,並對其進行迭代。
由於集合是一個集合,書籍的排序已經消失(Hibernate的PersistentSet封裝了一個沒有排序的書籍HashSet)。
所以,採用這種方法我不能有也由書籍字段排序的結果。
如果我將集合從Set更改爲List,那麼我的模型在語義上不正確。在模型中保持秩序沒有意義。
有沒有一種方法來保持圖書的排序?也許有一種方法讓PersistentSet包裝LinkedHashSet(它是有序的),其中的順序是由我的搜索標準定義的?
乾杯!
感謝您的回覆(+1)。是的,我見過。但在這個例子中,他們已經確定排序是在某個領域。我希望通過Criteria API設置該字段,具體取決於用戶在UI中單擊的內容。 – 2010-04-01 13:26:17
您也可以在Criteria查詢中指定結果的排序,與您在映射中指定的任何內容分開。 http://docs.jboss.org/hibernate/stable/core/reference/en/html/querycriteria.html#querycriteria-ordering – 2010-04-01 14:40:14
是的,你可以,但不幸的順序在映射(或@OrderBy)優先,這使得由Criteria設置的排序無用。或者至少,它是在排序映射的排序之後出現的。 – 2010-04-12 09:45:25