a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 266|回复: 0

[其他] Java认证之Hibernate中Criteria的用法(4)

[复制链接]
发表于 2012-8-4 12:28:23 | 显示全部楼层 |阅读模式
Java认证之Hibernate中Criteria的用法(4)
" k  B: b7 F  v" j# I" e' K8. 离线(detached)查询和子查询5 P5 r# r: G' h8 K! ~
DetachedCriteria类使你在一个session范围之外创建一个查询,并且可以使用任意的 Session来执行它。/ ?2 u2 \2 k: M! A' a9 J2 _1 |5 y
DetachedCriteria query = DetachedCriteria.forClass(Cat.class), ~! v* x6 F3 p0 N! M
.add( Property.forName(“sex”).eq(‘F’) );, p) v3 ]" e- {  {8 L" A$ G" e
//创建一个Session) I/ W, B" O$ c( ~
Session session = 。;
& ~3 Z! U' T2 k! RTransaction txn = session.beginTransaction();
% x6 q4 w6 X- ~6 E! D: K) MList results = query.getExecutableCriteria(session).setMaxResults(100).list();
) S* I( B" j& a8 Q3 jtxn.commit();
. X; Z* Y  q0 msession.close();0 s) T8 G6 c* E1 Y6 h; S
DetachedCriteria也可以用以表示子查询。条件实例包含子查询可以通过 Subqueries或者Property获得。) u3 ?5 [4 R! H8 U
DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)! V/ D7 C9 y" I9 `0 K
.setProjection( Property.forName(“weight”).avg() );
) x9 w" i/ _/ }session.createCriteria(Cat.class)
* B2 m2 b& v  X.add( Property.forName(“weight).gt(avgWeight) )" \8 E" |" _1 P- f4 I! V9 x9 |
.list();
) _& H  i& F- z& jDetachedCriteria weights = DetachedCriteria.forClass(Cat.class)0 H( O  M2 e% o% L
.setProjection( Property.forName(”weight“) );
4 o* ]2 o6 V8 C) o& Bsession.createCriteria(Cat.class)
- X6 c4 x7 ^9 Y' z. d+ ~3 C7 p.add( Subqueries.geAll(”weight  r) w/ X' u- \* E  Q3 ]/ m9 i
相互关联的子查询也是有可能的:
# T: f3 b3 r  u7 _2 }DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.class, “cat2”)8 Z# O8 ?  w: V
.setProjection( Property.forName(“weight”).avg() )
" K* z! q  C$ l* n+ A  r* j.add( Property.forName(“cat2.sex”).eqProperty(“cat.sex”) );
2 T, ~( p- V1 B' I5 I7 ^* o* Zsession.createCriteria(Cat.class, “cat”)
8 t* Q8 t. z) t.add( Property.forName())
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-9 10:18 , Processed in 0.220802 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表