您的位置:首页 > 其它

一对多里对 set 的排序

2017-04-13 10:20 190 查看
一对多里面对
set
的排序,建议采用以下办法:

 
1、首先,将POJO
中的
set
成员的类型改为
TreeSet
类型,因为
TreeSet
是实现了
SortedSet
的可排序集合类。

 
private Set labproductflowinfos = new TreeSet(new FlowInfoComparator());//为
TreeSet
提供一个自定义的比较器

 
然后修改配置文件,为<set>
添加
sort
属性,属性取值可以为一个自定义的比较器。如下:

public class FlowInfoComparator implements Comparator {
public int compare(Object o1, Object o2) {
if(o1 instanceof Labproductflowinfo &&
o2 instanceof Labproductflowinfo){
Integer s1 = ((Labproductflowinfo)o1).getSequenceNum();
Integer s2 = ((Labproductflowinfo)o2).getSequenceNum();
return s1.intValue() - s2.intValue();
}
return 0;
}}
<set name="labproductflowinfos" inverse="true"
cascade="all-delete-orphan" lazy="false" sort="com.zsc.hibernate.FlowInfoComparator">

2、第三种方式比较简单就是在hbm配置文件里配置采取排序的序列。<set ... order-by="date asc" />第一个参数是选择排序的序列,第二个参数是升序还是降序。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: