Hibernate中Criteria的完整用法Word格式文档下载.docx

上传人:b****5 文档编号:15686230 上传时间:2022-11-15 格式:DOCX 页数:14 大小:22.95KB
下载 相关 举报
Hibernate中Criteria的完整用法Word格式文档下载.docx_第1页
第1页 / 共14页
Hibernate中Criteria的完整用法Word格式文档下载.docx_第2页
第2页 / 共14页
Hibernate中Criteria的完整用法Word格式文档下载.docx_第3页
第3页 / 共14页
Hibernate中Criteria的完整用法Word格式文档下载.docx_第4页
第4页 / 共14页
Hibernate中Criteria的完整用法Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Hibernate中Criteria的完整用法Word格式文档下载.docx

《Hibernate中Criteria的完整用法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Hibernate中Criteria的完整用法Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

Hibernate中Criteria的完整用法Word格式文档下载.docx

Criteriacri=session.createCriteria(JdItemSerialnumber.class);

Criterioncron=Restrictions.like("

customer"

name);

cri.add(cron);

list=cri.list();

==============================

比较运算符

HQL运算符QBC运算符含义

=Restrictions.eq()等于

<

>

Restrictions.not(Exprission.eq())不等于

Restrictions.gt()大于

=Restrictions.ge()大于等于

Restrictions.lt()小于

=Restrictions.le()小于等于

isnullRestrictions.isnull()等于空值

isnotnullRestrictions.isNotNull()非空值

likeRestrictions.like()字符串模式匹配

andRestrictions.and()逻辑与

andRestrictions.conjunction()逻辑与

orRestrictions.or()逻辑或

orRestrictions.disjunction()逻辑或

notRestrictions.not()逻辑非

in(列表)Restrictions.in()等于列表中的某一个值

ontin(列表)Restrictions.not(Restrictions.in())不等于列表中任意一个值

betweenxandyRestrictions.between()闭区间xy中的任意值

notbetweenxandyRestrictions.not(Restrictions..between())小于值X或者大于值y

3:

HQL

Stringhql="

selects.name,avg(s.age)fromStudentsgroupbys.name"

;

Queryquery=session.createQuery(hql);

list=query.list();

....

4:

本地SQL查询

session=sessionFactory.openSession();

tran=session.beginTransaction();

SQLQuerysq=session.createSQLQuery(sql);

sq.addEntity(Student.class);

list=sq.list();

mit();

16.1.创建一个Criteria实例

org.hibernate.Criteria接口表示特定持久类的一个查询。

Session是Criteria实例的工厂。

Criteriacrit=sess.createCriteria(Cat.class);

crit.setMaxResults(50);

Listcats=crit.list();

16.2.限制结果集内容

一个单独的查询条件是org.hibernate.criterion.Criterion接口的一个实例。

org.hibernate.criterion.Restrictions类定义了获得某些内置Criterion类型的工厂方法。

Listcats=sess.createCriteria(Cat.class)

.add(Restrictions.like("

name"

"

Fritz%"

))

.add(Restrictions.between("

weight"

minWeight,maxWeight))

.list();

约束可以按逻辑分组。

.add(Restrictions.or(

Restrictions.eq("

age"

newInteger(0)),

Restrictions.isNull("

))

.add(Restrictions.in("

newString[]{"

Fritz"

Izi"

Pk"

}))

.add(Restrictions.disjunction()

.add(Restrictions.isNull("

.add(Restrictions.eq("

newInteger(0)))

newInteger

(1)))

newInteger

(2)))

Hibernate提供了相当多的内置criterion类型(Restrictions子类),但是尤其有用的是可以允许你直接使用SQL。

.add(Restrictions.sql("

lower({alias}.name)likelower(?

)"

Hibernate.STRING))

{alias}占位符应当被替换为被查询实体的列别名。

Property实例是获得一个条件的另外一种途径。

你可以通过调用Property.forName()创建一个Property。

Propertyage=Property.forName("

);

.add(age.isNull())

.add(age.eq(newInteger(0)))

.add(age.eq(newInteger

(1)))

.add(age.eq(newInteger

(2)))

.add(Property.forName("

).in(newString[]{"

16.3.结果集排序

你可以使用org.hibernate.criterion.Order来为查询结果排序。

F%"

.addOrder(Order.asc("

.addOrder(Order.desc("

.setMaxResults(50)

).like("

.addOrder(Property.forName("

).asc())

).desc())

16.4.关联

你可以使用createCriteria()非常容易的在互相关联的实体间建立约束。

.createCriteria("

kittens"

注意第二个createCriteria()返回一个新的Criteria实例,该实例引用kittens集合中的元素。

接下来,替换形态在某些情况下也是很有用的。

.createAlias("

kt"

mate"

mt"

.add(Restrictions.eqProperty("

kt.name"

mt.name"

(createAlias()并不创建一个新的Criteria实例。

Cat实例所保存的之前两次查询所返回的kittens集合是没有被条件预过滤的。

如果你希望只获得符合条件的kittens,你必须使用returnMaps()。

.returnMaps()

Iteratoriter=cats.iterator();

while(iter.hasNext()){

Mapmap=(Map)iter.next();

Catcat=(Cat)map.get(Criteria.ROOT_ALIAS);

Catkitten=(Cat)map.get("

}

16.5.动态关联抓取

你可以使用setFetchMode()在运行时定义动态关联抓取的语义。

.setFetchMode("

FetchMode.EAGER)

这个查询可以通过外连接抓取mate和kittens。

查看第20.1节“抓取策略(F

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1