<iframe style="MARGIN-TOP: 0px; FLOAT: left" border="0" marginwidth="0" framespacing="0" marginheight="0" src="http://wz.csdn.net/vote.aspx?t=hibernate%u4E2D%u7ED9%u96C6%u5408%u6392%u5E8F%u7684%u65B9%u6CD5%20-%20johnny%u7684%u4E13%u680F%20-%20CSDNBlog&amp;u=http%3A//blog.csdn.net/wangjian5748/archive/2006/11/14/1384623.aspx" frameborder="0" noresize="noresize" width="54" scrolling="no" height="75"></iframe> hibernate中给集合排序的方法 <script src="http://blog.csdn.net/count.aspx?ID=1384623&amp;Type=Rank"></script>
这里我们用set作示例,不讨论map,bag等结构
有执行排序的位置,可以分为内存排序和数据库排序,
1.内存排序,通过提供一个实现了Comparator接口的排序器来实现
配置文件:
xml 代码
- <set name="children" sort="com.company.project.domain.system.MenuComparator">
- <key>
- <column name="parent_id" not-null="true" />
- </key>
- <one-to-many
- class="com.company.project.domain.system.Menu" />
- </set>
java文件:
/**
* 用来给菜单排序
*
* @author wangjian
*
*/
public class MenuComparator implements Comparator<Menu> {
public int compare(Menu m1, Menu m2) {
return m2.getDisplayPosition() - m1.getDisplayPosition();
}
}
2.数据库排序,就是执行sql语句的时候利用order by {数据库字段1 数据库字段2...} {asc, desc}来达到目的
配置文件:
xml 代码
- <set name="children" order-by="DISPLAY_POSITION desc">
- <key>
- <column name="parent_id" not-null="true" />
- </key>
- <one-to-many
- class="com.company.project.domain.system.Menu" />
- </set>
注意:order-by属性完全是sql的语法,比如:字段名士数据库字段名称,不是hql中映射的名称,而且可以提供多个排序字段,默认排序方式是asc(升序)
关于集合排序的详细信息,可以参考hibernate官方文档的集合相关章节
相关推荐
在这个“hibernate中的集合映射范例程序”中,我们将深入探讨如何在Hibernate中进行集合映射,以及不同集合类型的应用场景。 首先,集合映射是Hibernate中处理一对多、多对多关系的核心机制。它允许我们将一个实体...
https://lijunabc.iteye.com/blog/443353”,虽然具体内容没有给出,但通常这类博客文章会详细解释如何配置和使用Hibernate的bag集合映射,包括XML或注解方式的映射定义,以及在Java代码中如何操作这些集合。...
### Hibernate集合映射基础 1. **集合类型**:Hibernate支持多种集合类型映射,如Set、List、ArrayList、LinkedList、Map等。Set是最常见的集合映射类型,它不允许重复元素,与数据库中的唯一约束相对应。 2. **...
在这个主题中,我们将深入探讨Hibernate集合映射的各个方面。 首先,我们来看一下**一对多映射**。在数据库中,如果一个表的记录可以与另一个表的多个记录关联,这种关系就被称为一对多。在Hibernate中,可以通过`...
在Java的持久化框架Hibernate中,集合映射是将数据库中的表与Java对象的集合属性关联的过程。List集合映射是其中常见的一种方式,它允许我们将数据库中的一组相关记录映射到Java对象的List列表中。这种映射机制使得...
在Hibernate中,核心概念包括实体(Entities)、会话(Sessions)、事务(Transactions)、查询(Queries)等。首先,实体是业务逻辑中的对象,它们通过注解或者XML配置与数据库表对应。例如,一个名为`User`的实体...
10. **一对多、多对一、一对一和多对多关系映射**:Hibernate支持多种关联映射,包括集合映射,如List、Set、Map等,以及复合主键的处理。 11. **继承映射**:在Java中,子类可以继承父类。在Hibernate中,这种继承...
总之,Hibernate集合映射是对象关系映射的重要组成部分,理解并熟练掌握各种映射类型、级联操作、缓存策略等,将有助于我们在实际开发中更高效、更灵活地处理数据库与Java对象之间的关系。在实践中,不断调整和优化...
使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。通过 Criteria,可以根据实际情况灵活地组装查询条件,以满足复杂的查询需求。 Hibernate 的 Criteria 是...
在Java持久化框架Hibernate中,容器映射技术是将Java集合类(如Set、Map、List等)与数据库中的关联关系进行映射的一种方法。这种技术使得对象之间的复杂关系能够被有效地存储和检索,增强了数据操作的灵活性。下面...
8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 ...
《Hibernate参考指南》是Java开发领域中不可或缺的重要资源,它详细介绍了Hibernate框架的使用方法和最佳实践。Hibernate是一个开源的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互,允许开发者...
Hibernate 4.1是Java开发中的一个关键框架,主要用于对象关系映射(ORM),它使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层的SQL语法。这份中文官方文档是学习和理解Hibernate 4.1功能和用法的重要...
- **排序的集合**: 如何排序集合中的元素。 - **双向关联**: 处理集合中的双向关联。 - **三元关联**: 复杂场景下的关联映射。 - **使用**: 特定情况下使用`<idbag>`元素。 #### 8. 协会映射 - **介绍**: 关联...
《Hibernate 3.3.2 中文帮助文档》是一份针对Java开发人员的重要参考资料,它详细阐述了Hibernate框架在3.3.2版本中的各项功能和使用方法。Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象...
8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 ...
本学习资料集合了多个关于Hibernate的重要主题,包括对象关系映射的基础、持久化机制、查询语言以及不同类型的关联关系,旨在帮助学习者深入理解并掌握Hibernate的核心概念和技术。 1. **对象状态及一对多关联** ...
8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 ...
Hibernate还提供了许多高级特性,如级联操作(Cascade)、集合的排序和分页(Sort和Criteria API)、投影(Projections)以及事件监听器(Listeners)等,以满足不同场景的需求。 总之,“Hibernate中文帮助文档”...
9. **高级特性**:涵盖动态模型、多态性、集合元素类型、子查询、联合实体、继承策略等进阶主题,提升开发者对Hibernate的深入理解和运用能力。 10. **最佳实践与实战经验**:分享作者在实际项目中积累的Hibernate...