2013-06-21 84 views
0

以下是hibernate映射文件中名爲m1的類的片段。'sort'屬性是做什麼的?

<class name="pojo.m1" table="m1"> 

    <id name="r_no"> 
     <generator class="increment" /> 
    </id> 

    <property name="s_name" /> 

    <map name="map" table="m4" cascade="all" sort="pojo.m4"> 
     <key column="r_no" /> 
     <index-many-to-many class="pojo.m2" column="t1" /> <!-- r_no as index !--> 
     <many-to-many class="pojo.m3" column="t2" /> <!-- r_no + total OR class m3 as key !--> 
    </map> 

</class> 

map標籤,有一個名爲sort的屬性。它有什麼作用 ?它在這裏命名實現類comparator的類。

public class m4 implements Comparator<m2> { 

    @Override 
    public int compare(m2 o1, m2 o2) { 
     if(o1.getR_no() > o2.getR_no()) 
      return 1; 
     else 
      return -1; 
    } 
} 

回答

2

official documentation

sort (optional): specifies a sorted collection with natural sort order or a given comparator class. 

它指定你的映射集合排序,並通過什麼標準將垃圾分類。在你的情況下,給出一個比較器來定義兩個對象的順序,因此迭代地定義所有對象的順序。

+0

以及如果我刪除'sort'屬性? –

+0

我認爲默認值是未排序的。 –

+0

另請參閱文檔中的第6.3.1節。 –