Hibernate高级查询

来源:互联网 发布:淘宝 盗卖教程犯法吗 编辑:程序博客网 时间:2024/05/18 11:32

Hibernate中标准化对象查询(Criteria)

主要内容:

标准化对象查询

通过面向对象化的设计,将查询条件封装为一个对象。它支持在运行时动态生成查询语句主要由四部分组成:1. Criteria接口2. Critertion接口3. Order类4. Projection接口

Criteria接口

是一个用来存放查询条件的容器,创建Criteria接口对象

Criteria criteria= session.createCriteria(Class persistentClass);

Criterion接口

代表一个查询条件,可以通过它的实现类Restrictions类来产生查询条件,并且还需要通过Criteria的add方法添加到Criteria实例中。
这里写图片描述

Order类

对查询结果进行排序,通过Criteria的addOrder()方法添加到Criteria实例中,排序方式有:1. Order.desc(String propertyName)2. Order.asc(String propertyName)

Projection接口

代表投影查询,它的Projections类提供了一系列产生具体Projection实例的静态方法。通过Criteria的setProjection()方法添加到Criteria实例中。Projections类中的聚合函数有: 1. avg(String propertyName) 2. count(String propertyName) 3. sum(String propertyName) 4. max(String propertyName) 5. min(String propertyName) ……

离线查询

DetachedCriteria类可以在session范围之外创建一个查询,并且可以附加到任意 Session上来执行查询。

Hibernate中HQL的高级查询

主要内容:

子查询

内嵌在另一个查询语句中的查询,称为子查询。HQL中的子查询只可以在select或者where字句中出现

连接查询

Hibernate中的连接查询只能在建立了关联映射的实体类之间进行,可以通过HQL的with关键字,来提供额外的join条件,常见的连接查询有:1. 内连接([inner] join)2. 左外连接(left [outer] join)3. 右外连接[right [outer] join]4. 全连接(full join)

抓取连接查询

fetch连接,只使用一个查询语句就将相关联的对象或一组值的集合随着它们的父对象的初始化而被初始化。

Hibernate中Native SQL查询

Native SQL:    1. 直接使用数据库SQL语句进行查询    2. 通过Session.createSQLQuery()来获取SQLQuery接口实例

Hibernate调用存储过程

存储过程/函数必须返回一个结果集,作为Hibernate能够使用的第一个外部参数。在程序中调用的代码:
session.createSQLQuery(“{存储过程}")
0 0
原创粉丝点击