首页 > 代码库 > 【Hibernate】set排序

【Hibernate】set排序

使用hibernate进行一对多操作的时候,普遍使用HashSet进行操作。但是HashSet是无序集合,对此可以使用TreeSet进行排序。

1.将HashSet改为TreeSet

private Set<EbgRequmentItem> items = new HashSet<EbgRequmentItem>();

--》

private Set<EbgRequmentItem> items = new TreeSet<EbgRequmentItem>();

2.新增TreeSet排序比较器对象

 1 package ?????.comparator; 2  3 import ?????.EbgRequmentItem; 4  5 import java.util.Comparator; 6  7 /** 8  * 产品需求项排序比较器 9  * 10  * @author Tidy11  *12  */13 public class EbgRequimentItemComparator implements Comparator<Object> {14 15     @Override16     public int compare(Object o1, Object o2) {17         EbgRequmentItem eqi1=(EbgRequmentItem)o1;  18         EbgRequmentItem eqi2=(EbgRequmentItem)o2;  19         return eqi1.getName().compareTo(eqi2.getName()); 20     }21 22 }

3.在hbm.xml文件中添加sort属性

1 <set name="items" cascade="delete-orphan" inverse="true" lazy="true">2     <key column="PRODUCT_REQ_ID"></key>3     <one-to-many class="EbgRequmentItem"/>4 </set>

--》

1 <set name="items" cascade="delete-orphan" inverse="true" lazy="true" sort="??????.comparator.EbgRequimentItemComparator">2     <key column="PRODUCT_REQ_ID"></key>3     <one-to-many class="EbgRequmentItem"/>4 </set>

4.重启服务进行测试就可以了。

【Hibernate】set排序