对hibernate的set集合进行排序
2012-05-18 16:45
218 查看
部门表(dept)-------------员工表(emp)
部门的pojo类:
public class Dept{
private Integer deptId;
private String dname;
private Set emps = new HashSet(0);
}
员工的pojo类:
public class Emp{
private Integer empId;
private String ename;
private Dept dept;
}
方法一:
在pojo中不用hashSet , 改用treeSet;
private Set emps = new TreeSet();
很简单吧,没错,但是是为什么呢?看一下的HashTable和TreeSet的区别就知道了
HashSet实现Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证集合的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用 null 元素。HashSet为基本操作提供了稳定性能,这些基本操作包括 add、remove、contains 和 size,假定哈希函数将这些元素正确地分布在桶中。对此集合进行迭代所需的时间与 HashSet 实例的大小(元素的数量)和底层 HashMap 实例(桶的数量)的“容量”的和成比例。因此,如果迭代性能很重要,则不要将初始容量设置得太高(或将加载因子设置得太低)。HashSet的实现是不同步的。如果多个线程同时访问一个集合,而其中至少一个线程修改了该集合,那么它必须 保持外部同步。
TreeSet类实现 Set 接口,该接口由 TreeMap 实例支持。此类保证排序后的 set 按照升序排列元素,根据使用的构造方法不同,可能会按照元素的自然顺序 进行排序,或按照在创建 set 时所提供的比较器进行排序。是一个有序集合,元素中安升序排序,缺省是按照自然顺序进行排序,意味着TreeSet中元素要实现Comparable接口;我们可以构造TreeSet对象时,传递实现了Comparator接口的比较器对象
方法二:
在dept的配置文件中:Dept.hbm.xml中的<set ></set> 元素上增加order-by="empId"
<set name="emps" inverse="true" order-by="empId">
<key>
<column name="deptId"/>
</key>
<one-to-many class="hwt.pojo.Emp" />
</set>
方法三:
也是在配置文件中修改:
先自己写一个类,实现Comparator接口,实现里面的compare方法
public class HwtSorter implements Comparator {
public int compare(Object o1, Object o2) {
Emp emp1 = (Emp) o1;
Emp emp2 = (Emp) o2;
//按照id排序
Integer empId = emp1.getEmpId();
Integer empId2 = emp2.getEmpId();
return empId>empId2?1:(empId==empId2?0:-1);
}
}
同样,在dept的配置文件中:Dept.hbm.xml中的<set ></set> 元素上增加
<set name="emps" inverse="true" sort="hwt.pojo.HwtSort">
<key>
<column name="deptId"/>
</key>
<one-to-many class="hwt.pojo.Emp" />
</set>
相关文章推荐
- 对hibernate的set集合进行排序
- 对hibernate的set集合进行排序
- 对hibernate的set集合进行排序
- 对hibernate的set集合进行排序2
- Hibernate-多关系时对应的多个关联对象Set集合进行排序
- Hibernate中实现Set集合的排序
- 给set集合中的元素根据字符串长度进行排序
- 针对hibernate中 Set 集合 的排序
- 黑马程序员训练营---------TreeSet集合中对象进行排序的两种方式
- hibernate注解实现set集合排序
- Hibernate 中对set的集合的排序解决办法
- Java://Comparator、Comparable的用法(按照要求将set集合的数据进行排序输出):
- Hibernate (四) Set List Map 集合映射 和排序
- Hibernate中Set集合排序
- java 集合框架(TreeSet操作,自动对数据进行排序,重写CompareTo方法)
- Hibernate 多表关联映射- Hibernate中使用的集合类型(set,list,array,bag,map)
- List集合按照日期字段进行排序
- Java对List集合中的元素进行排序
- 集合练习。学生信息包括学号、姓名、出生日期、性别。把N个学生的信息放入一个集合中。可以根据学号,对学生信息进行检索。并可以根据生日进行排序输出。
- 对Set进行排序