上一篇:
细谈Hibernate(九)hibernate一对一关系映射
在实际开发过程中,有很多用户需要时要把查询出来的结果进行排序显示,而不是在数据库里面那样顺序混乱那样的显示,这样的话我们不得不要对数据进行排序了,hibernate对数据排序提供了很好的支持,hibernate提供了两种对查询到得数据结果进行排序:1:数据库排序,也就是说在数据库内部就进行完了排序。2.内存排序,也就是说在数据库中把数据加载到内存中在进行排序。其实一般我们推荐使用第二种排序方式,因为在数据库中排序的性能要远远高于在内存中排序的性能。
一:数据库排序
数据库排序主要是使用集合标签中的order-by属性,格式主要是为: order-by="字段名 排序方式”;例如:order-by="name asc”name是指数据库字段 asc是升序,在hibernate中,<set>、<idbag>、<map>、<list>元素都有order-by属性,如果设置了该属性,Hibernate会利用 order by 子句进行排序,使用order-by属性,我们可以通过hbm文件执行生成的SQL如何使用orderby 查询子句以返回排序后的结果集。下面我们就以一个具体的实例来具体看一下数据库排序的内容
我们就以学生和团队的关系来说一下:首先来看一下实体之间的数据结构关系:
Student.java
public class Student {
private String id;
private String name;
private String description;
private Team team;
.************set、get方法省略
}
Team.java
public class Team {
private String id;
private String teamname;
private Set students;
***********set、get方法省略
}
从实体上我们可以看出,学生和团队是一个多对一得数据关系,这个我们以前都看过,也写过,相信大家都有已经很熟悉了。所以在此具体的配置文件我们也不多写了,我们主要来看一下配置排序的地方,下面我们看一下配置的详细代码:
<!-- 以名称降序返回student集合 -->
<s