使用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&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集合映射是将Java集合类与数据库表关联的关键机制,涵盖了从一对一、一对多到多对多的各种关系映射。理解并熟练掌握这些映射方式,能够帮助开发者更好地设计和实现数据持久化层,提高代码的可...
总之,Hibernate集合映射是对象关系映射的重要组成部分,理解并熟练掌握各种映射类型、级联操作、缓存策略等,将有助于我们在实际开发中更高效、更灵活地处理数据库与Java对象之间的关系。在实践中,不断调整和优化...
Hibernate是Java领域内最受欢迎的对象关系映射(ORM)框架之一,它简化了Java应用程序与关系型数据库之间的交互,使得开发人员能够用面向对象的方式处理数据库操作,而无需深入了解SQL语法或数据库API。通过将Java...
### Hibernate集合映射基础 1. **集合类型**:Hibernate支持多种集合类型映射,如Set、List、ArrayList、LinkedList、Map等。Set是最常见的集合映射类型,它不允许重复元素,与数据库中的唯一约束相对应。 2. **...
在Hibernate中,集合映射是指将数据库中的表与Java集合对象(如List、Set等)进行关联,方便对一组相关数据进行操作。 "bag"是Hibernate中的一种集合类型,表示无序的、可重复的对象集合。在数据库层面,这通常对应...
在Java的持久化框架Hibernate中,集合映射是将数据库中的表与Java对象的集合属性关联的过程。List集合映射是其中常见的一种方式,它允许我们将数据库中的一组相关记录映射到Java对象的List列表中。这种映射机制使得...
HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...
6. **HQL(Hibernate Query Language)**:类似于SQL,但专为ORM设计,HQL允许开发者以面向对象的方式执行数据库查询,支持复杂的查询操作,如关联查询、分组、排序等。 7. **事务管理**:在数据库操作中,事务的...
Hibernate是一款强大的Java持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句,而是通过对象关系映射(ORM)技术将Java对象与数据库表进行对应。在实际开发中,我们常常会遇到Java对象中包含集合属性...
Hibernate,作为Java领域中的一款强大且广泛应用的对象关系映射(ORM)框架,极大地简化了数据库操作。它允许开发者使用面向对象的编程方式来处理数据库交互,而无需直接编写SQL语句。这篇文档将深入探讨Hibernate的...
1. **SessionFactory**: 这是Hibernate的核心接口之一,它负责创建Session对象。SessionFactory是线程安全的,通常在应用启动时创建并缓存,整个应用生命周期中只创建一次。 2. **Session**: Session是与数据库交互...
Hibernate是一个开源的Java库,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据,而不是传统的SQL语句。在Hibernate的帮助下,开发者可以避免大量重复的JDBC代码,提高开发效率和代码的可维护性。 ...
Hibernate 是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象的方式来处理数据库操作。ORM 解决了在 Java 应用程序中使用传统 JDBC 进行数据库操作时遇到的繁琐代码问题,将数据库中的表与 Java 对象...
本学习资料集合了多个关于Hibernate的重要主题,包括对象关系映射的基础、持久化机制、查询语言以及不同类型的关联关系,旨在帮助学习者深入理解并掌握Hibernate的核心概念和技术。 1. **对象状态及一对多关联** ...
Hibernate 的集合映射可以将一个对象的集合属性映射到数据库中。集合映射可以是 set、list、map、bag、array 等。级联策略控制可以控制集合元素的保存和删除。排序策略可以控制集合元素的顺序。 聚合映射 ...
5. **Array映射**:Array在Java中是固定大小的,但在Hibernate中,我们通常用它来映射数据库的一组相关列,而非对象的集合。`<array>`标签可以实现这种映射,但较少在实际应用中使用。 6. **Properties映射**:...
总之,这份“Hibernate帮助手册和API集合”是学习和使用Hibernate的宝贵资料,无论你是初学者还是经验丰富的开发者,都可以从中找到所需的信息,提升开发效率,更好地利用Hibernate进行Java应用的数据库操作。
Hibernate支持多种关系映射,如实体间的关联、集合的映射等,使得这些关系在Java代码中可以透明处理。 7. **缓存机制**:Hibernate提供了第一级缓存(Session级别的缓存)和第二级缓存(SessionFactory级别的缓存)...