`
esffor
  • 浏览: 1370729 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate集合排序之数据库排序

阅读更多

使用order-by属性,我们可以通过hbm文件执行生成的SQL如何使用order by 查询子句以返回排序后的结果集

数据库结构:

 

create table teamOrder (id varchar(32),teamname varchar(32));
create table studentOrder (id varchar(32),name varchar(32),description varchar(32),team_id varchar(32));
insert into teamOrder values("1","team1");
insert into studentOrder values("1","a","a","1");
insert into studentOrder values("2","b","b","1");
insert into studentOrder values("3","c","c","1");

 

pojo:

 

package Collection.Order;

import java.util.Set;

public class Team ...{
   
private String id;
   
private String teamname;
   
private Set students;
public String getId() ...{
    
return id;
}

public void setId(String id) ...{
    
this.id = id;
}

public String getTeamname() ...{
    
return teamname;
}

public void setTeamname(String teamname) ...{
    
this.teamname = teamname;
}

public Set getStudents() ...{
    
return students;
}

public void setStudents(Set students) ...{
    
this.students = students;
}


}




package Collection.Order;

public class Student ...{
  
private String id;
  
private String name;
  
private String description;
  
private Team team;
public String getId() ...{
    
return id;
}

public void setId(String id) ...{
    
this.id = id;
}

public String getName() ...{
    
return name;
}

public void setName(String name) ...{
    
this.name = name;
}

public String getDescription() ...{
    
return description;
}

public void setDescription(String description) ...{
    
this.description = description;
}


public Team getTeam() ...{
    
return team;
}

public void setTeam(Team team) ...{
    
this.team = team;
}

}

 

Hibernate.cfg.xml

 

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"
>

<!-- Generated by MyEclipse Hibernate Tools.                   -->
<hibernate-configuration>

<session-factory>
    
<property name="connection.username">root</property>
    
<property name="connection.url">
        jdbc:mysql://localhost:3306/schoolproject?characterEncoding=gb2312
&amp;useUnicode=true
    
</property>
    
<property name="dialect">
        org.hibernate.dialect.MySQLDialect
    
</property>
    
<property name="myeclipse.connection.profile">mysql</property>
    
<property name="connection.password">1234</property>
    
<property name="connection.driver_class">
        com.mysql.jdbc.Driver
    
</property>
    
<property name="hibernate.dialect">
        org.hibernate.dialect.MySQLDialect
    
</property>
    
<property name="hibernate.show_sql">true</property>
    
<property name="current_session_context_class">thread</property>
    
<property name="jdbc.batch_size">15</property>
    
<mapping resource="Collection/Order/Student.hbm.xml" />
    
<mapping resource="Collection/Order/Team.hbm.xml" />




</session-factory>

</hibernate-configuration>

Student.hbm.xml

 

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="Collection.Order.Student" table="studentOrder" >
    
<id name="id" unsaved-value="null">
      
<generator class="uuid.hex"></generator>
    
</id>
  
    
<property name="name" type="string" column="name"></property>
   
    
<property name="description" type="string" column="description"></property> 
    
<many-to-one name="team" 
                 column
="team_id"
                 class
="Collection.Order.Team" 
                 cascade
="none" 
                 fetch
="join">
    
</many-to-one>
</class>

</hibernate-mapping>

Team.hbm.xml

 

 

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
>
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name="Collection.Order.Team" table="teamOrder" >
    
<id name="id" unsaved-value="null">
      
<generator class="uuid.hex"></generator>
    
</id>
    
<property name="teamname" type="string" column="teamname"></property>
    
<!-- 以名称降序返回student集合 -->
    
<set name="students" table="studentOrder" cascade="all" order-by="name desc">
      
<key column="team_id"></key>
      
<one-to-many class="Collection.Order.Student"/>
    
</set>
</class>

</hibernate-mapping>

 

测试代码:

 

package Collection.Order;


import java.io.File;
import java.util.Iterator;
import java.util.Set;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

分享到:
评论

相关推荐

    Hibernate集合映射

    综上所述,Hibernate集合映射是将Java集合类与数据库表关联的关键机制,涵盖了从一对一、一对多到多对多的各种关系映射。理解并熟练掌握这些映射方式,能够帮助开发者更好地设计和实现数据持久化层,提高代码的可...

    [原]Hibernate集合映射

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

    HIBERNATE - 符合Java习惯的关系数据库持久化

    Hibernate是Java领域内最受欢迎的对象关系映射(ORM)框架之一,它简化了Java应用程序与关系型数据库之间的交互,使得开发人员能够用面向对象的方式处理数据库操作,而无需深入了解SQL语法或数据库API。通过将Java...

    hibernate set 集合映射

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

    hibernate bag 集合映射

    在Hibernate中,集合映射是指将数据库中的表与Java集合对象(如List、Set等)进行关联,方便对一组相关数据进行操作。 "bag"是Hibernate中的一种集合类型,表示无序的、可重复的对象集合。在数据库层面,这通常对应...

    hibernate list集合映射

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

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    hibernate 3.6 中文 chm

    6. **HQL(Hibernate Query Language)**:类似于SQL,但专为ORM设计,HQL允许开发者以面向对象的方式执行数据库查询,支持复杂的查询操作,如关联查询、分组、排序等。 7. **事务管理**:在数据库操作中,事务的...

    hibernate 集合映射

    Hibernate是一款强大的Java持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句,而是通过对象关系映射(ORM)技术将Java对象与数据库表进行对应。在实际开发中,我们常常会遇到Java对象中包含集合属性...

    hibernate帮助文档下载

    Hibernate,作为Java领域中的一款强大且广泛应用的对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的编程方式来处理数据库交互,而无需直接编写SQL语句。这篇文档将深入探讨Hibernate的...

    hibernate api

    1. **SessionFactory**: 这是Hibernate的核心接口之一,它负责创建Session对象。SessionFactory是线程安全的,通常在应用启动时创建并缓存,整个应用生命周期中只创建一次。 2. **Session**: Session是与数据库交互...

    hibernate-3.6.8-doc-zh

    Hibernate是一个开源的Java库,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据,而不是传统的SQL语句。在Hibernate的帮助下,开发者可以避免大量重复的JDBC代码,提高开发效率和代码的可维护性。 ...

    hibernate基础教程.pdf

    Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作。ORM 解决了在 Java 应用程序中使用传统 JDBC 进行数据库操作时遇到的繁琐代码问题,将数据库中的表与 Java 对象...

    北大青鸟Hibernate学习资料

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

    hibernate源码分析过程

    Hibernate 的集合映射可以将一个对象的集合属性映射到数据库中。集合映射可以是 set、list、map、bag、array 等。级联策略控制可以控制集合元素的保存和删除。排序策略可以控制集合元素的顺序。 聚合映射 ...

    hibernate中的集合映射范例程序

    5. **Array映射**:Array在Java中是固定大小的,但在Hibernate中,我们通常用它来映射数据库的一组相关列,而非对象的集合。`&lt;array&gt;`标签可以实现这种映射,但较少在实际应用中使用。 6. **Properties映射**:...

    hibernate帮助手册和api集合(含英文中文版)

    总之,这份“Hibernate帮助手册和API集合”是学习和使用Hibernate的宝贵资料,无论你是初学者还是经验丰富的开发者,都可以从中找到所需的信息,提升开发效率,更好地利用Hibernate进行Java应用的数据库操作。

    北软实训jsp(Hibernate框架技术训练)实例

    Hibernate支持多种关系映射,如实体间的关联、集合的映射等,使得这些关系在Java代码中可以透明处理。 7. **缓存机制**:Hibernate提供了第一级缓存(Session级别的缓存)和第二级缓存(SessionFactory级别的缓存)...

Global site tag (gtag.js) - Google Analytics