`
uule
  • 浏览: 6348755 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

一对多里对 set 的排序

阅读更多

一对多里面对 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" />第一个参数是选择排序的序列,第二个参数是升序还是降序。

分享到:
评论

相关推荐

    hibernate 一对多 set 与 list 分别用法

    在Java的持久化框架Hibernate中,一对多关系是常见的实体关联类型,表示一个实体可以与多个其他实体相关联。在处理这种关系时,我们通常会使用`Set`或`List`作为关联集合的容器。本篇文章将深入探讨`Hibernate`中一...

    修改STL的排序准则

    本文将对STL中的set和map进行详细的讲解,并提供修改排序准则的思路和实现代码。 一、STL中的set和map排序 在STL中,set和map都是按照特定的排序准则进行排序的。对于set来说,默认的排序准则是按照元素的值大小...

    PB数据窗口的排序

    在代码中,可以通过连续调用`SetSort`方法添加更多的排序级别。 4. **自定义排序**:PB还允许创建自定义的排序函数,以满足特殊排序需求。这种排序方式需要编写用户自定义函数(UDF),在函数中实现排序逻辑,然后...

    C++标准库:std_set作为一个有序集合

    std::set是C++标准库中一个关联容器,实现内部元素的排序,使用这特性可以对一组元素进行插入排序。std::set最初的设计是完成数学中“集合”的概念,它提供的接口也是如此。 std::set的主要特点是:自动排序、关联...

    Hibernate(一对多表操作)

    在Hibernate的XML映射文件中,我们可以使用`&lt;set&gt;`、`&lt;list&gt;`、`&lt;map&gt;`或`&lt;bag&gt;`元素来表示一对多关系。以用户和订单为例,`User`类对应一个`Order`类的集合: ```xml &lt;!-- User.hbm.xml --&gt; &lt;set name="orders" ...

    PB数据窗口排序

    1. **内置排序**:PB数据窗口提供了内置的排序功能,允许用户根据一个或多个字段进行升序或降序排序。在设计数据窗口时,可以通过设置字段属性来指定排序方式,或者在运行时通过DataWindow对象的Sort方法动态设定...

    C# IList多字段排序

    在实际项目中,我们常常需要对这些列表进行排序,而不仅仅基于一个字段,而是可能根据多个字段的顺序来决定元素的最终排列。这就涉及到了多字段排序。 多字段排序是指按照一个以上的属性或字段对数据进行排序。例如...

    map和set的异同

    综上所述,虽然`map`和`set`在很多方面有共同之处,如基于红黑树的实现和有序性等,但它们在数据类型、插入规则、访问方式等方面存在明显差异。理解这些不同有助于开发者根据实际需求选择最合适的容器类型,提高程序...

    各种排序算法Demo

    它通过将待排序的数组按某个增量分组,然后对每组进行直接插入排序,随着增量逐渐减少,每组包含的关键词越来越多,直到增量为1,整个文件恰被分成一组,算法便终止。 4. 冒泡排序(Bubble Sort): 冒泡排序是最...

    C++_STL之set容器使用方法

    在C++标准模板库(STL)中,`set`容器是一种非常重要的关联容器,主要用于存储唯一元素,并且这些元素会根据其键值自动排序。`set`内部通常采用红黑树(一种自平衡的二叉查找树)来实现,这使得它在执行插入、删除和...

    C#对数据库记录进行排序查询

    在C#编程中,对数据库记录进行排序查询是常见的数据操作任务,这涉及到数据库的查询语句、数据访问层的设计以及UI展示等多个方面。本文将深入探讨如何在C#环境中,利用ADO.NET或者ORM框架(如Entity Framework)来...

    VBS_VBS操作EXCLE排序

    - **多关键字排序**:如果需要按多个关键字排序,可以在 `Sort` 方法中添加更多参数。 - **自定义排序规则**:可以通过设置 `SortSpecialOrder` 参数来自定义排序规则,例如按颜色排序等。 - **错误处理**:在实际...

    set映射(视频)

    5. **映射(Map)接口的基本概念**:键值对的存储,键必须是唯一的,而每个键可以对应一个或多个值。 6. **HashMap的工作方式**:使用哈希表存储键值对,通过键的哈希值快速定位,支持高效的查找、插入和删除操作。...

    VB6 ListView 排序

    在VB6(Visual Basic 6)中,ListView控件是一个常用...通过以上步骤,我们可以创建一个功能完备的ListView控件,能够根据用户的需求对数字数据进行升序或降序排序。这不仅提高了用户体验,也使得数据管理更加方便。

    list排序 Icompare接口

    1. **复合排序**:先按第一列排序,然后对每一列的相等组再按下一列排序。这可以通过嵌套`IComparer`s实现,或者在单个`IComparer`中同时处理多个条件。 2. **优先级排序**:指定每个列的优先级,高优先级列的排序...

    hibernate set 集合映射

    3. **关联映射**:集合映射通常涉及到两个实体之间的关联,如一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)关系。 4. **集合属性映射**:在实体类中,集合属性需要使用...

    java 运用集的相关类(Set)

    `Java.jpg`可能是对Java集合框架或Set接口的可视化表示,帮助理解其内部结构或工作原理。 在实际编程中,选择合适的Set实现取决于需求。如果需要快速的插入和查找,不关心元素顺序,可以选择HashSet;如果需要保持...

Global site tag (gtag.js) - Google Analytics