锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一二成人精品区,久久精品国产精品亚洲精品,亚洲成人高清在线观看http://www.tkk7.com/josson/category/22460.html澶╁湴鐢熶漢,鏈変竴浜哄簲鏈変竴浜轟箣涓?浜虹敓鍦ㄤ笘,鐢熶竴鏃ュ綋灝戒竴鏃ヤ箣鍕?zh-cnThu, 17 May 2007 13:45:19 GMTThu, 17 May 2007 13:45:19 GMT60(鏀惰棌)鏉′歡鏌ヨ(Criteria Queries)http://www.tkk7.com/josson/archive/2007/05/15/117490.htmljossonjossonTue, 15 May 2007 00:55:00 GMThttp://www.tkk7.com/josson/archive/2007/05/15/117490.htmlhttp://www.tkk7.com/josson/comments/117490.htmlhttp://www.tkk7.com/josson/archive/2007/05/15/117490.html#Feedback0http://www.tkk7.com/josson/comments/commentRss/117490.htmlhttp://www.tkk7.com/josson/services/trackbacks/117490.html
絎?16 绔?nbsp; 鏉′歡鏌ヨ(Criteria Queries)

鍏鋒湁涓涓洿瑙傜殑銆佸彲鎵╁睍鐨勬潯浠舵煡璇PI鏄疕ibernate鐨勭壒鑹層?br>
16.1. 鍒涘緩涓涓狢riteria 瀹炰緥

org.hibernate.Criteria鎺ュ彛琛ㄧず鐗瑰畾鎸佷箙綾葷殑涓涓煡璇€係ession鏄?Criteria瀹炰緥鐨勫伐鍘傘?br>
Criteria crit = sess.createCriteria(Cat.class);
crit.setMaxResults(
50);
List cats 
= crit.list();


16.2. 闄愬埗緇撴灉闆嗗唴瀹?/span>

涓涓崟鐙殑鏌ヨ鏉′歡鏄痮rg.hibernate.criterion.Criterion 鎺ュ彛鐨勪竴涓疄渚嬨俹rg.hibernate.criterion.Restrictions綾?瀹氫箟浜嗚幏寰楁煇浜涘唴緗瓹riterion綾誨瀷鐨勫伐鍘傛柟娉曘?br>
List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like(
"name""Fritz%") )
    .add( Restrictions.between(
"weight", minWeight, maxWeight) )
    .list();


綰︽潫鍙互鎸夐昏緫鍒嗙粍銆?br>
List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like(
"name""Fritz%") )
    .add( Restrictions.or(
        Restrictions.eq( 
"age"new Integer(0) ),
        Restrictions.isNull(
"age")
    ) )
    .list();


List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.in( 
"name"new String[] { "Fritz""Izi""Pk" } ) )
    .add( Restrictions.disjunction()
        .add( Restrictions.isNull(
"age") )
        .add( Restrictions.eq(
"age"new Integer(0) ) )
        .add( Restrictions.eq(
"age"new Integer(1) ) )
        .add( Restrictions.eq(
"age"new Integer(2) ) )
    ) )
    .list();


Hibernate鎻愪緵浜嗙浉褰撳鐨勫唴緗甤riterion綾誨瀷(Restrictions 瀛愮被), 浣嗘槸灝ゅ叾鏈夌敤鐨勬槸鍙互鍏佽浣犵洿鎺ヤ嬌鐢⊿QL銆?br>
List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.sql(
"lower({alias}.name) like lower(?)""Fritz%", Hibernate.STRING) )
    .list();


{alias}鍗犱綅絎﹀簲褰撹鏇挎崲涓鴻鏌ヨ瀹炰綋鐨勫垪鍒悕銆?br>
Property瀹炰緥鏄幏寰椾竴涓潯浠剁殑鍙﹀涓縐嶉斿緞銆備綘鍙互閫氳繃璋冪敤Property.forName() 鍒涘緩涓涓狿roperty銆?br>
Property age = Property.forName("age");
List cats 
= sess.createCriteria(Cat.class)
    .add( Restrictions.disjunction()
        .add( age.isNull() )
        .add( age.eq( 
new Integer(0) ) )
        .add( age.eq( 
new Integer(1) ) )
        .add( age.eq( 
new Integer(2) ) )
    ) )
    .add( Property.forName(
"name").in( new String[] { "Fritz""Izi""Pk" } ) )
    .list();


16.3. 緇撴灉闆嗘帓搴?/span>

浣犲彲浠ヤ嬌鐢╫rg.hibernate.criterion.Order鏉ヤ負鏌ヨ緇撴灉鎺掑簭銆?br>
List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like(
"name""F%")
    .addOrder( Order.asc(
"name") )
    .addOrder( Order.desc(
"age") )
    .setMaxResults(
50)
    .list();

List cats = sess.createCriteria(Cat.class)
    .add( Property.forName(
"name").like("F%") )
    .addOrder( Property.forName(
"name").asc() )
    .addOrder( Property.forName(
"age").desc() )
    .setMaxResults(
50)
    .list();


16.4. 鍏寵仈

浣犲彲浠ヤ嬌鐢╟reateCriteria()闈炲父瀹規槗鐨勫湪浜掔浉鍏寵仈鐨勫疄浣撻棿寤虹珛 綰︽潫銆?br>
List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like(
"name""F%")
    .createCriteria(
"kittens")
        .add( Restrictions.like(
"name""F%")
    .list();


娉ㄦ剰絎簩涓?createCriteria()榪斿洖涓涓柊鐨?Criteria瀹炰緥錛岃瀹炰緥寮曠敤kittens 闆嗗悎涓殑鍏冪礌銆?br>
鎺ヤ笅鏉ワ紝鏇挎崲褰㈡佸湪鏌愪簺鎯呭喌涓嬩篃鏄緢鏈夌敤鐨勩?br>
List cats = sess.createCriteria(Cat.class)
    .createAlias(
"kittens""kt")
    .createAlias(
"mate""mt")
    .add( Restrictions.eqProperty(
"kt.name""mt.name") )
    .list();


(createAlias()騫朵笉鍒涘緩涓涓柊鐨?Criteria瀹炰緥銆?

Cat瀹炰緥鎵淇濆瓨鐨勪箣鍓嶄袱嬈℃煡璇㈡墍榪斿洖鐨刱ittens闆嗗悎鏄?娌℃湁琚潯浠墮榪囨護鐨勩傚鏋滀綘甯屾湜鍙幏寰楃鍚堟潯浠剁殑kittens錛?浣犲繀欏諱嬌鐢╮eturnMaps()銆?br>
List cats = sess.createCriteria(Cat.class)
    .createCriteria(
"kittens""kt")
        .add( Restrictions.eq(
"name""F%") )
    .returnMaps()
    .list();
Iterator iter 
= cats.iterator();
while ( iter.hasNext() ) {
    Map map 
= (Map) iter.next();
    Cat cat 
= (Cat) map.get(Criteria.ROOT_ALIAS);
    Cat kitten 
= (Cat) map.get("kt");
}


16.5. 鍔ㄦ佸叧鑱旀姄鍙?/span>

浣犲彲浠ヤ嬌鐢╯etFetchMode()鍦ㄨ繍琛屾椂瀹氫箟鍔ㄦ佸叧鑱旀姄鍙栫殑璇箟銆?br>
List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like(
"name""Fritz%") )
    .setFetchMode(
"mate", FetchMode.EAGER)
    .setFetchMode(
"kittens", FetchMode.EAGER)
    .list();


榪欎釜鏌ヨ鍙互閫氳繃澶栬繛鎺ユ姄鍙杕ate鍜宬ittens銆?鏌ョ湅絎?20.1 鑺?“ 鎶撳彇絳栫暐(Fetching strategies) ”鍙互鑾峰緱鏇村淇℃伅銆?br>16.6. 鏌ヨ紺轟緥

org.hibernate.criterion.Example綾誨厑璁鎬綘閫氳繃涓涓粰瀹氬疄渚?鏋勫緩涓涓潯浠舵煡璇€?br>
Cat cat = new Cat();
cat.setSex(
'F');
cat.setColor(Color.BLACK);
List results 
= session.createCriteria(Cat.class)
    .add( Example.create(cat) )
    .list();


鐗堟湰灞炴с佹爣璇嗙鍜屽叧鑱旇蹇界暐銆傞粯璁ゆ儏鍐典笅鍊間負null鐨勫睘鎬у皢琚帓闄ゃ?br>
浣犲彲浠ヨ嚜琛岃皟鏁碋xample浣夸箣鏇村疄鐢ㄣ?br>
Example example = Example.create(cat)
    .excludeZeroes()           
//exclude zero valued properties
    .excludeProperty("color")  //exclude the property named "color"
    .ignoreCase()              //perform case insensitive string comparisons
    .enableLike();             //use like for string comparisons
List results = session.createCriteria(Cat.class)
    .add(example)
    .list();


浣犵敋鑷沖彲浠ヤ嬌鐢╡xamples鍦ㄥ叧鑱斿璞′笂鏀劇疆鏉′歡銆?br>
List results = session.createCriteria(Cat.class)
    .add( Example.create(cat) )
    .createCriteria(
"mate")
        .add( Example.create( cat.getMate() ) )
    .list();


16.7. 鎶曞獎(Projections)銆佽仛鍚堬紙aggregation錛夊拰鍒嗙粍錛坓rouping錛?/span>

org.hibernate.criterion.Projections鏄?Projection 鐨勫疄渚嬪伐鍘傘傛垜浠氳繃璋冪敤 setProjection()搴旂敤鎶曞獎鍒頒竴涓煡璇€?br>
List results = session.createCriteria(Cat.class)
    .setProjection( Projections.rowCount() )
    .add( Restrictions.eq(
"color", Color.BLACK) )
    .list();

List results 
= session.createCriteria(Cat.class)
    .setProjection( Projections.projectionList()
        .add( Projections.rowCount() )
        .add( Projections.avg(
"weight") )
        .add( Projections.max(
"weight") )
        .add( Projections.groupProperty(
"color") )
    )
    .list();


鍦ㄤ竴涓潯浠舵煡璇腑娌℃湁蹇呰鏄懼紡鐨勪嬌鐢?"group by" 銆傛煇浜涙姇褰辯被鍨嬪氨鏄瀹氫箟涓?鍒嗙粍鎶曞獎錛屼粬浠篃鍑虹幇鍦⊿QL鐨刧roup by瀛愬彞涓?br>
浣犲彲浠ラ夋嫨鎶婁竴涓埆鍚嶆寚媧劇粰涓涓姇褰憋紝榪欐牱鍙互浣挎姇褰卞艱綰︽潫鎴栨帓搴忔墍寮曠敤銆備笅闈㈡槸涓ょ涓嶅悓鐨勫疄鐜版柟寮忥細

List results = session.createCriteria(Cat.class)
    .setProjection( Projections.alias( Projections.groupProperty(
"color"), "colr" ) )
    .addOrder( Order.asc(
"colr") )
    .list();

List results 
= session.createCriteria(Cat.class)
    .setProjection( Projections.groupProperty(
"color").as("colr") )
    .addOrder( Order.asc(
"colr") )
    .list();


alias()鍜宎s()鏂規硶綆渚跨殑灝嗕竴涓姇褰卞疄渚嬪寘瑁呭埌鍙﹀涓涓?鍒悕鐨凱rojection瀹炰緥涓傜畝鑰岃█涔嬶紝褰撲綘娣誨姞涓涓姇褰卞埌涓涓姇褰卞垪琛ㄤ腑鏃?浣犲彲浠ヤ負瀹冩寚瀹氫竴涓埆鍚嶏細

List results = session.createCriteria(Cat.class)
    .setProjection( Projections.projectionList()
        .add( Projections.rowCount(), 
"catCountByColor" )
        .add( Projections.avg(
"weight"), "avgWeight" )
        .add( Projections.max(
"weight"), "maxWeight" )
        .add( Projections.groupProperty(
"color"), "color" )
    )
    .addOrder( Order.desc(
"catCountByColor") )
    .addOrder( Order.desc(
"avgWeight") )
    .list();

List results 
= session.createCriteria(Domestic.class"cat")
    .createAlias(
"kittens""kit")
    .setProjection( Projections.projectionList()
        .add( Projections.property(
"cat.name"), "catName" )
        .add( Projections.property(
"kit.name"), "kitName" )
    )
    .addOrder( Order.asc(
"catName") )
    .addOrder( Order.asc(
"kitName") )
    .list();


浣犱篃鍙互浣跨敤Property.forName()鏉ヨ〃紺烘姇褰憋細

List results = session.createCriteria(Cat.class)
    .setProjection( Property.forName(
"name") )
    .add( Property.forName(
"color").eq(Color.BLACK) )
    .list();

List results 
= session.createCriteria(Cat.class)
    .setProjection( Projections.projectionList()
        .add( Projections.rowCount().as(
"catCountByColor") )
        .add( Property.forName(
"weight").avg().as("avgWeight") )
        .add( Property.forName(
"weight").max().as("maxWeight") )
        .add( Property.forName(
"color").group().as("color" )
    )
    .addOrder( Order.desc(
"catCountByColor") )
    .addOrder( Order.desc(
"avgWeight") )
    .list();


16.8. 紱葷嚎(detached)鏌ヨ鍜屽瓙鏌ヨ

DetachedCriteria綾諱嬌浣犲湪涓涓猻ession鑼冨洿涔嬪鍒涘緩涓涓煡璇紝騫朵笖鍙互浣跨敤浠繪剰鐨?Session鏉ユ墽琛屽畠銆?br>
DetachedCriteria query = DetachedCriteria.forClass(Cat.class)
    .add( Property.forName(
"sex").eq('F') );
   
Session session 
= .;
Transaction txn 
= session.beginTransaction();
List results 
= query.getExecutableCriteria(session).setMaxResults(100).list();
txn.commit();
session.close();


DetachedCriteria涔熷彲浠ョ敤浠ヨ〃紺哄瓙鏌ヨ銆傛潯浠跺疄渚嬪寘鍚瓙鏌ヨ鍙互閫氳繃 Subqueries鎴栬匬roperty鑾峰緱銆?br>
DetachedCriteria avgWeight = DetachedCriteria.forClass(Cat.class)
    .setProjection( Property.forName(
"weight").avg() );
session.createCriteria(Cat.
class)
    .add( Property.forName(
"weight).gt(avgWeight) )
    .list();

DetachedCriteria weights 
= DetachedCriteria.forClass(Cat.class)
    .setProjection( Property.forName(
"weight") );
session.createCriteria(Cat.
class)
    .add( Subqueries.geAll(
"weight", weights) )
    .list();


鐢氳嚦鐩鎬簰鍏寵仈鐨勫瓙鏌ヨ涔熸槸鏈夊彲鑳界殑錛?br>
DetachedCriteria avgWeightForSex = DetachedCriteria.forClass(Cat.class"cat2")
    .setProjection( Property.forName(
"weight").avg() )
    .add( Property.forName(
"cat2.sex").eqProperty("cat.sex") );
session.createCriteria(Cat.
class"cat")
    .add( Property.forName(
"weight).gt(avgWeightForSex) )
    .list();



josson 2007-05-15 08:55 鍙戣〃璇勮
]]>
Hibernate 涓仛鍚堝嚱鏁扮殑浣跨敤http://www.tkk7.com/josson/archive/2007/05/15/117488.htmljossonjossonTue, 15 May 2007 00:50:00 GMThttp://www.tkk7.com/josson/archive/2007/05/15/117488.htmlhttp://www.tkk7.com/josson/comments/117488.htmlhttp://www.tkk7.com/josson/archive/2007/05/15/117488.html#Feedback0http://www.tkk7.com/josson/comments/commentRss/117488.htmlhttp://www.tkk7.com/josson/services/trackbacks/117488.htmlCriteria鎺ュ彛鐨凱rojections綾諱富瑕佺敤浜庡府鍔〤riteria鎺ュ彛瀹屾垚鏁版嵁鐨勫垎緇勬煡璇㈠拰緇熻鍔熻兘:
List cats=session.createCriteria(Cat.class)
               .setProjection(Projections.projectionList()
               .add(Projections.rowCount())
               .add(Projections.avg(
"weight"))
               .add(Projections.max(
"weight"))
               .add(Projections.min(
"weight"))
               .add(Projections.groupProperty(
"color"))
           ).addOrder(Order.asc(
"color")).list();

紺轟緥浠g爜鐩稿綋浜?
select color,count(*),avg(weight),max(weight),min(weight),min(weight) from cat group by color order by color asc;



josson 2007-05-15 08:50 鍙戣〃璇勮
]]>
主站蜘蛛池模板: 亚洲AV电影天堂男人的天堂| 亚洲人成伊人成综合网久久| 久草视频免费在线| 精品无码国产污污污免费网站| 亚洲日韩av无码| 日韩精品无码免费专区网站| 在线播放高清国语自产拍免费| 亚洲第一男人天堂| 四虎影视无码永久免费| 国产日韩成人亚洲丁香婷婷| 中国china体内裑精亚洲日本| 成人免费视频69| 亚洲中文字幕无码爆乳| 女性自慰aⅴ片高清免费| 色天使亚洲综合一区二区| xvideos亚洲永久网址| 亚洲乱码卡一卡二卡三| 女人18毛片a级毛片免费| 国产成人亚洲午夜电影| 亚洲中文字幕无码久久精品1| 亚洲精品美女久久7777777| 国产精品成人免费综合| 无码精品人妻一区二区三区免费| 久久精品国产亚洲Aⅴ香蕉| 日本高清免费观看| 亚洲综合一区国产精品| 免费jjzz在线播放国产| 久久www免费人成精品香蕉| 免费欧洲毛片A级视频无风险| 2022国内精品免费福利视频| 亚洲久本草在线中文字幕| 久久国内免费视频| 特级aa**毛片免费观看| 久久久久亚洲AV成人无码网站| 国产免费A∨在线播放| 97亚洲熟妇自偷自拍另类图片| 日韩av无码成人无码免费| 亚洲性色高清完整版在线观看| 99免费观看视频| 亚洲精品宾馆在线精品酒店| 国产亚洲人成A在线V网站|