2009-09-02 52 views
1

假設對象A有一個對象B的列表,而對象B必須有一個對象C,B可以是基於C.level的順序。如何在hibernate映射中按順序排列

在A.hbm.xml

<bag name="listB" 
      table="T_B" 
      inverse="false" 
      order-by="?? what should i do here???" 
     > 
      <key column="ID_A" not-null="true"/> 
      <many-to-many column="ID_B" class="B"/> 
     </bag> 

回答

1

的order by語句應該包含SQL代碼段,你會用來訂購的項目清單。如果您的示例中您的訂購條件不在T_B表中,那麼您可能無法完成您想要的任務。另一方面,如果B包含一個C並且它始終是一對一的關係,那麼可以在DB中定義一個視圖來聚合這些表,併爲您提供一個可以排序的列。

0

我雖然訂單在查詢中指定?沒有?

EXP:

from Document fetch all properties order by name 
+0

感謝您的快速回復..但有時候查詢不夠好....假設我已經得到了對象A ...這是您的查詢中的Document對象...並且我說...文檔。 getProperties()....然後返回值不會按順序 – jojo 2009-09-02 07:11:17

+0

然後我不得不說抱歉。我不知道如何設置它。在這種情況下,我會使用「Comparable」接口和「Collection.sort()」,但這樣我就失去了查詢的美感。 – 2009-09-02 07:37:08