一对多里面对
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" />第一个参数是选择排序的序列,第二个参数是升序还是降序。
分享到:
相关推荐
在Java的持久化框架Hibernate中,一对多关系是常见的实体关联类型,表示一个实体可以与多个其他实体相关联。在处理这种关系时,我们通常会使用`Set`或`List`作为关联集合的容器。本篇文章将深入探讨`Hibernate`中一...
本文将对STL中的set和map进行详细的讲解,并提供修改排序准则的思路和实现代码。 一、STL中的set和map排序 在STL中,set和map都是按照特定的排序准则进行排序的。对于set来说,默认的排序准则是按照元素的值大小...
在代码中,可以通过连续调用`SetSort`方法添加更多的排序级别。 4. **自定义排序**:PB还允许创建自定义的排序函数,以满足特殊排序需求。这种排序方式需要编写用户自定义函数(UDF),在函数中实现排序逻辑,然后...
std::set是C++标准库中一个关联容器,实现内部元素的排序,使用这特性可以对一组元素进行插入排序。std::set最初的设计是完成数学中“集合”的概念,它提供的接口也是如此。 std::set的主要特点是:自动排序、关联...
在Hibernate的XML映射文件中,我们可以使用`<set>`、`<list>`、`<map>`或`<bag>`元素来表示一对多关系。以用户和订单为例,`User`类对应一个`Order`类的集合: ```xml <!-- User.hbm.xml --> <set name="orders" ...
1. **内置排序**:PB数据窗口提供了内置的排序功能,允许用户根据一个或多个字段进行升序或降序排序。在设计数据窗口时,可以通过设置字段属性来指定排序方式,或者在运行时通过DataWindow对象的Sort方法动态设定...
在实际项目中,我们常常需要对这些列表进行排序,而不仅仅基于一个字段,而是可能根据多个字段的顺序来决定元素的最终排列。这就涉及到了多字段排序。 多字段排序是指按照一个以上的属性或字段对数据进行排序。例如...
综上所述,虽然`map`和`set`在很多方面有共同之处,如基于红黑树的实现和有序性等,但它们在数据类型、插入规则、访问方式等方面存在明显差异。理解这些不同有助于开发者根据实际需求选择最合适的容器类型,提高程序...
它通过将待排序的数组按某个增量分组,然后对每组进行直接插入排序,随着增量逐渐减少,每组包含的关键词越来越多,直到增量为1,整个文件恰被分成一组,算法便终止。 4. 冒泡排序(Bubble Sort): 冒泡排序是最...
在C++标准模板库(STL)中,`set`容器是一种非常重要的关联容器,主要用于存储唯一元素,并且这些元素会根据其键值自动排序。`set`内部通常采用红黑树(一种自平衡的二叉查找树)来实现,这使得它在执行插入、删除和...
在C#编程中,对数据库记录进行排序查询是常见的数据操作任务,这涉及到数据库的查询语句、数据访问层的设计以及UI展示等多个方面。本文将深入探讨如何在C#环境中,利用ADO.NET或者ORM框架(如Entity Framework)来...
`Map`接口表示键值对的集合,每个键都是唯一的,且每个键都有一个对应的值。 ##### 概述 常见的`Map`实现包括`HashMap`、`TreeMap`等。 - **HashMap**:基于哈希表实现,提供了快速的键值对检索。 - **TreeMap**...
- **多关键字排序**:如果需要按多个关键字排序,可以在 `Sort` 方法中添加更多参数。 - **自定义排序规则**:可以通过设置 `SortSpecialOrder` 参数来自定义排序规则,例如按颜色排序等。 - **错误处理**:在实际...
5. **映射(Map)接口的基本概念**:键值对的存储,键必须是唯一的,而每个键可以对应一个或多个值。 6. **HashMap的工作方式**:使用哈希表存储键值对,通过键的哈希值快速定位,支持高效的查找、插入和删除操作。...
在VB6(Visual Basic 6)中,ListView控件是一个常用...通过以上步骤,我们可以创建一个功能完备的ListView控件,能够根据用户的需求对数字数据进行升序或降序排序。这不仅提高了用户体验,也使得数据管理更加方便。
1. **复合排序**:先按第一列排序,然后对每一列的相等组再按下一列排序。这可以通过嵌套`IComparer`s实现,或者在单个`IComparer`中同时处理多个条件。 2. **优先级排序**:指定每个列的优先级,高优先级列的排序...
3. **关联映射**:集合映射通常涉及到两个实体之间的关联,如一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)关系。 4. **集合属性映射**:在实体类中,集合属性需要使用...
`Java.jpg`可能是对Java集合框架或Set接口的可视化表示,帮助理解其内部结构或工作原理。 在实际编程中,选择合适的Set实现取决于需求。如果需要快速的插入和查找,不关心元素顺序,可以选择HashSet;如果需要保持...