• 【Hibernate】set排序


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

    1.将HashSet改为TreeSet

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

    --》

     1 private Set<EbgRequmentItem> items = new TreeSet<EbgRequmentItem>(new Comparator<EbgRequmentItem>(){
     2          @Override
     3          public int compare(EbgRequmentItem o1, EbgRequmentItem o2) {
     4               //默认如果是比较结果为0的话,会认为重复,默认去掉,这里可以做下处理
     5               if( o1.getName().compareTo(o2.getName()) == 0){
     6                   //返回-1不会去重
     7                   return -1;
     8               }else{
     9                   //降序
    10                   //return o2.getName().compareTo(o1.getName()); 
    11                   //升序
    12                   return o1.getName().compareTo(o2.getName()); 
    13               }
    14          }
    15  }); 

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

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

    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.重启服务进行测试就可以了。

  • 相关阅读:
    wenbao与powershell
    wenbao与windows
    wenbao与msf
    CCF201612-Python题解
    语不惊人死不休
    为人性僻耽佳句(一)
    Pytorch出现 raise NotImplementedError
    CNN卷积
    python字符串切片
    python----numpy(持续更新)
  • 原文地址:https://www.cnblogs.com/zengweiming/p/4134676.html
Copyright © 2020-2023  润新知