2013-06-21 3 views
0

Ниже приведен фрагмент из файла сопоставления гибернации класса 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 в документации. –

Смежные вопросы