`

[转] hibernate中给集合排序的方法

阅读更多
<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;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;amp;Type=Rank"></script>  CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。

这里我们用set作示例,不讨论map,bag等结构

有执行排序的位置,可以分为内存排序和数据库排序,
1.内存排序,通过提供一个实现了Comparator接口的排序器来实现
配置文件:

xml 代码
  1. <set name="children" sort="com.company.project.domain.system.MenuComparator">  
  2.     <key>  
  3.         <column name="parent_id" not-null="true" />  
  4.     </key>  
  5.     <one-to-many  
  6.         class="com.company.project.domain.system.Menu" />  
  7. </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 代码
  1. <set name="children" order-by="DISPLAY_POSITION desc">  
  2.     <key>  
  3.         <column name="parent_id" not-null="true" />  
  4.     </key>  
  5.     <one-to-many  
  6.         class="com.company.project.domain.system.Menu" />  
  7. </set>  


注意:order-by属性完全是sql的语法,比如:字段名士数据库字段名称,不是hql中映射的名称,而且可以提供多个排序字段,默认排序方式是asc(升序)

关于集合排序的详细信息,可以参考hibernate官方文档的集合相关章节

分享到:
评论

相关推荐

    hibernate中的集合映射范例程序

    在这个“hibernate中的集合映射范例程序”中,我们将深入探讨如何在Hibernate中进行集合映射,以及不同集合类型的应用场景。 首先,集合映射是Hibernate中处理一对多、多对多关系的核心机制。它允许我们将一个实体...

    hibernate bag 集合映射

    https://lijunabc.iteye.com/blog/443353”,虽然具体内容没有给出,但通常这类博客文章会详细解释如何配置和使用Hibernate的bag集合映射,包括XML或注解方式的映射定义,以及在Java代码中如何操作这些集合。...

    hibernate set 集合映射

    ### Hibernate集合映射基础 1. **集合类型**:Hibernate支持多种集合类型映射,如Set、List、ArrayList、LinkedList、Map等。Set是最常见的集合映射类型,它不允许重复元素,与数据库中的唯一约束相对应。 2. **...

    Hibernate集合映射

    在这个主题中,我们将深入探讨Hibernate集合映射的各个方面。 首先,我们来看一下**一对多映射**。在数据库中,如果一个表的记录可以与另一个表的多个记录关联,这种关系就被称为一对多。在Hibernate中,可以通过`...

    hibernate list集合映射

    在Java的持久化框架Hibernate中,集合映射是将数据库中的表与Java对象的集合属性关联的过程。List集合映射是其中常见的一种方式,它允许我们将数据库中的一组相关记录映射到Java对象的List列表中。这种映射机制使得...

    Hibernate中文Api最新参考文档

    在Hibernate中,核心概念包括实体(Entities)、会话(Sessions)、事务(Transactions)、查询(Queries)等。首先,实体是业务逻辑中的对象,它们通过注解或者XML配置与数据库表对应。例如,一个名为`User`的实体...

    hibernate 3.6 中文 chm

    10. **一对多、多对一、一对一和多对多关系映射**:Hibernate支持多种关联映射,包括集合映射,如List、Set、Map等,以及复合主键的处理。 11. **继承映射**:在Java中,子类可以继承父类。在Hibernate中,这种继承...

    [原]Hibernate集合映射

    总之,Hibernate集合映射是对象关系映射的重要组成部分,理解并熟练掌握各种映射类型、级联操作、缓存策略等,将有助于我们在实际开发中更高效、更灵活地处理数据库与Java对象之间的关系。在实践中,不断调整和优化...

    Hibernate中Criteria的完整用法

    使用 Criteria 进行查询,主要要清晰的是 Hibernate 提供了那些类和方法来满足开发中查询条件的创建和组装。通过 Criteria,可以根据实际情况灵活地组装查询条件,以满足复杂的查询需求。 Hibernate 的 Criteria 是...

    hibernate中容器映射技术

    在Java持久化框架Hibernate中,容器映射技术是将Java集合类(如Set、Map、List等)与数据库中的关联关系进行映射的一种方法。这种技术使得对象之间的复杂关系能够被有效地存储和检索,增强了数据操作的灵活性。下面...

    Hibernate+中文文档

    8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 ...

    hibernate_reference中文/英文.pdf

    《Hibernate参考指南》是Java开发领域中不可或缺的重要资源,它详细介绍了Hibernate框架的使用方法和最佳实践。Hibernate是一个开源的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互,允许开发者...

    hibernate4.1中文官方文档

    Hibernate 4.1是Java开发中的一个关键框架,主要用于对象关系映射(ORM),它使得开发者可以使用面向对象的方式来操作数据库,而无需关心底层的SQL语法。这份中文官方文档是学习和理解Hibernate 4.1功能和用法的重要...

    hibernate4.1中文api

    - **排序的集合**: 如何排序集合中的元素。 - **双向关联**: 处理集合中的双向关联。 - **三元关联**: 复杂场景下的关联映射。 - **使用**: 特定情况下使用`&lt;idbag&gt;`元素。 #### 8. 协会映射 - **介绍**: 关联...

    hibernate3.3.2中文帮助文档

    《Hibernate 3.3.2 中文帮助文档》是一份针对Java开发人员的重要参考资料,它详细阐述了Hibernate框架在3.3.2版本中的各项功能和使用方法。Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象...

    hibernate3.2中文文档(chm格式)

    8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 ...

    北大青鸟Hibernate学习资料

    本学习资料集合了多个关于Hibernate的重要主题,包括对象关系映射的基础、持久化机制、查询语言以及不同类型的关联关系,旨在帮助学习者深入理解并掌握Hibernate的核心概念和技术。 1. **对象状态及一对多关联** ...

    Hibernate中文详细学习文档

    8.2. 在集合中出现的依赖对象 (Collections of dependent objects) 8.3. 组件作为Map的索引(Components as Map indices ) 8.4. 组件作为联合标识符(Components as composite identifiers) 8.5. 动态组件 ...

    Hibernate中文帮助文档

    Hibernate还提供了许多高级特性,如级联操作(Cascade)、集合的排序和分页(Sort和Criteria API)、投影(Projections)以及事件监听器(Listeners)等,以满足不同场景的需求。 总之,“Hibernate中文帮助文档”...

    hibernate in action 中文版书籍

    9. **高级特性**:涵盖动态模型、多态性、集合元素类型、子查询、联合实体、继承策略等进阶主题,提升开发者对Hibernate的深入理解和运用能力。 10. **最佳实践与实战经验**:分享作者在实际项目中积累的Hibernate...

Global site tag (gtag.js) - Google Analytics