a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 265|回复: 0

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

[复制链接]
发表于 2012-8-4 12:28:23 | 显示全部楼层 |阅读模式
Java认证之Hibernate中Criteria的用法(4)/ x! k1 |4 m! Z  ^- \
8. 离线(detached)查询和子查询
( \' @' E$ ^+ CDetachedCriteria类使你在一个session范围之外创建一个查询,并且可以使用任意的 Session来执行它。
& ~5 Y0 ?' d" w$ z' t; jDetachedCriteria query = DetachedCriteria.forClass(Cat.class)- d( i; @+ R8 U; d. Z2 X
.add( Property.forName(“sex”).eq(‘F’) );
# u6 C4 T2 ]* ?9 W  N( C& G//创建一个Session
6 F$ i; ]; a) m' j8 l% wSession session = 。;- a/ ]* E: G( \2 }3 L' _9 Q
Transaction txn = session.beginTransaction();
- `+ D3 {/ Y. J+ o9 J, e! VList results = query.getExecutableCriteria(session).setMaxResults(100).list();  h# ]! N2 b) k5 H& U  P
txn.commit();" c8 ?2 o! w. E" Y3 K" F8 ~
session.close();
5 u4 t. q! ^) g, ^: ^2 e7 NDetachedCriteria也可以用以表示子查询。条件实例包含子查询可以通过 Subqueries或者Property获得。
+ j  q6 e: M* f" `DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class), a' `. j& I* H7 g1 j0 V. H& o  D
.setProjection( Property.forName(“weight”).avg() );
) M  G3 B2 u. u8 A$ W# Dsession.createCriteria(Cat.class)9 ?2 I) w* F* G
.add( Property.forName(“weight).gt(avgWeight) )& o  R5 i9 E+ X, h0 a
.list();' Y! m6 d% e/ s7 [6 d
DetachedCriteria weights = DetachedCriteria.forClass(Cat.class)
; R! T' R  \# B% j/ m- Q) j.setProjection( Property.forName(”weight“) );
( _0 R& P& [/ bsession.createCriteria(Cat.class)
3 i$ G  H6 I8 s1 Z: y. c! e.add( Subqueries.geAll(”weight
* ~% q. a: J3 L* q# ]( d相互关联的子查询也是有可能的:
+ }# n& B9 \" E4 b& {- @. BDetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.class, “cat2”)5 i* F& o2 u. K2 O
.setProjection( Property.forName(“weight”).avg() )# a# [$ ~- H- `
.add( Property.forName(“cat2.sex”).eqProperty(“cat.sex”) );% p1 t5 o  p& e8 r# K" c0 w  N
session.createCriteria(Cat.class, “cat”)" D$ d; ?8 U) q
.add( Property.forName())
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 03:32 , Processed in 0.289305 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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