精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

深入淺出Hibernate學習筆記 Criteria Query

開發 后端
本文是對深入淺出Hibernate學習做的學習筆記,是個人在對深入淺出Hibernate學習中的一點認識和看法,下邊是具體的內容。

本文是對深入淺出Hibernate學習做的學習筆記,是個人在對深入淺出Hibernate學習中的一點認識和看法,下邊是具體的內容。

Criteria Query通過面向對象的設計,將數據查詢條件封裝為一個對象。簡單來說,Criteria Query可以看作是傳統SQL的對象化表示,如:

  1. Criteria criteria=session.createCriteria(TUser.class);  
  2. criteria.add(Expression.eq("name","Erica"));  
  3. criteria.add(Expression.eq("sex",new Integer(1)); 

這里的criteria實例本質上是對SQL“select * from t_user where name='Erica' and sex=1”的封裝。Hibernate在運行期會根據Criteria中指定的查詢條件生成相應的SQL語句。

Criteria查詢表達式:Criteria本身只是一個容器,具體的查詢條件要通過Criteria.add方法添加到Criteria實例中。

方法描述:Expression.eq 對應SQL “field=value”表達式

如:Expression.eq("name","Erica")

  1. Expression.allEq 參數為一個Map對象,其中包含了多個屬性-值對應關系。相當于多個Expression.eq關系的疊加   
  2. Expression.gt 對應SQL“field>value”表達式   
  3. Expression.ge 對應SQL“field>=value”表達式   
  4. Expression.lt 對應SQL“field<value”表達式   
  5. Expression.le 對應SQL“field<=value”表達式   
  6. Expression.between 對應SQL“between”表達式 

如:

  1. Expression.between("age",new Integer(13),new Integer(50));   
  2. Expression.like 對應SQL"field like valule"表達式   
  3. Expression.in 對應SQL“field in...”表達式   
  4. Expression.eqproperty 用于比較兩個屬性之間的值,對應SQL“field>field”   
  5. Expression.gtProperty 用于比較兩個屬性之間的值,對應SQL“field>=field”   
  6. Expression.ltProperty 用于比較兩個屬性之間的值,對應SQL"field<field"   
  7. Expression.leProperty 用于比較兩個屬性之間的值,對應SQL"field<=field"   
  8. Expression.and and關系組合,如:  
  9. Expression.add(Expression.eq("name","Erica"),Expression.add("sex",new Integer(1)))  
  10. Expression.or or關系組合,如:  
  11. Expression.or(Expression.eq("name","Erica"),Expression.add("sex",new Integer(1)))   
  12. Expression.sql 作為補充,本方法提供了原生SQL語法的支持,我們可以通過這個方法直接通過SQL語句限定查詢條件 

下面的代碼返回所有名稱以"Erica"其實的記錄:

  1. Expression.sql("lower({alias}.name) like lower(?)","Erica%",Hibernate.STRING); 

其中的"{alias}"將Hibernate在運行期使用當前關聯的POJO別名替換,在Hibernate3中,引入了Restrictions類作為Expression的替代。

示例查詢:

Example類實現了Criteria接口,同樣,它也可以用作Criteria的查詢條件。Example的作用是:根據已有對象,查找屬性與之相符的其他對象。

  1. Criteria criteria=session.CreateCriteria(TUser.class);  
  2. TUser exampleUser=new TUser();  
  3. exapleUser.getName("Erica");  
  4. criteria.add(Example.create(exampleUser));  
  5. List<TUser> list=criteria.list();  
  6. for(TUser user:list){  
  7. System.out.println(user.getName());  

新建一個TUser對象exampleUser,并作為范本,查詢所有name屬性與之相同的記錄。

復合查詢:

  1. Criteria criteria=session.createCriteria(TUser.class);  
  2. Criteria addrCriteria=criteria.createCriteria("addresses");  
  3. addrCriteria.add(Expression.like("addresses","%shanghai%"));  
  4.  
  5. List<TUser> list = criteria.list();  
  6. for(TUser user:list){  
  7.     System.out.println(user.getName());  
  8.     Set<TAddress> addrSet=user.getAddresses();  
  9.     for(TAddress addr:addrSet){  
  10.         System.out.println(addr.getAddress());  
  11.     }  

深色部分就是我們新增的復合查詢條件,可以看到,我們可以通過Criteria.createCriteria方法在原有Criteria對象的基礎上構建復合查詢。

DetachedCriteria:

Hibernate2中,Criteria生命周期位于其宿主Session生命周期中,也就是說,由某個session創建的Criteria實例,一旦session銷毀,那么此Criteria實例也隨之失效。

Hibernate3中引入了DetachedCriteria,DetachedCriteria可以脫離session實例獨立存在,這樣,我們就可以將某些通用的Criteria查詢條件進行抽離,每次使用時再與當前session實例綁定以獲得更好的代碼重用效果。

  1. DetachedCriteria deCriteria=DetachedCriteria.forClass(TUser.class);  
  2. deCriteria.add(Expression.eq("name","Erica"));  
  3. deCriteria.add(Expression.eq("sex",new Integer(1)));  
  4. Criteria criteria=deCriteria.getExecutableCriteria(session);  
  5. List<TUser> list=criteria.list();  
  6. for(TUser user:list){  
  7.     System.out.println(user.getName());  

DetachedCriteria的生存周期與session實例無關,我們可以獨立創建DetachedCriteria實例,并在需要使用時與session相綁定,從而獲得運行期Criteria實例。這樣,我們就可以將查詢邏輯和Criteria實例分離,以獲得***化代碼的重用效果。

DetachedCriteria也可以用于子查詢表達:

  1. DetachedCriteria aveAge=DetachedCriteria.forClass(TUser.class);  
  2. avgAge.setProjection(Projections.avg("age"));  
  3. Criteria criteria=session.createCriteria(TUser.class);  
  4. criteria.add(Subqueries.propertyGT("age",avgAge)); 

通過Subqueries我們可以將DetachedCriteria納入查詢表達式,反映在SQL上則是一個典型的子查詢語句。上例生成的SQL語句大致如:select ... from T_User where age > (select avg(age) from T_User)

Criteria高級特性,限定返回的記錄范圍,通過criteria.setFirstResult/setMaxResults方法可以限制一次查詢返回的記錄范圍:

  1. Criteria criteria=session.createCriteria(TUser.class);  
  2. //限定查詢返回檢索結果中,從100條結果開始的20條記錄  
  3. criteria.setFirstResult(100);  
  4. criteria.setMaxResults(20);        記錄排序:  
  5. //  
  6. //  
  7. Criteria criteria=session.createCriteria(TUser.class);  
  8. criteria.add(Expression.eq("groupId",new Integer(2)));  
  9.  
  10. criteria.addOrder(Order.asc("name"));  
  11. criteria.addOrder(Order.desc("groupId")); 

分組與統計:

在Hibernate3中,我們還可以通過Criteria完成分組和統計。分組、統計表達式由Hibernate3新引入的Projections Class進行封裝。

  1. Criteria criteria=session.createCriteria(TUser.class);  
  2. criteria.setProjection(Projections.groupProperty("age"));  
  3. List<TUser> list=criteria.list();  
  4. for(TUser user:list){  
  5.     System.out.println(user);  

上例對當前的TUser記錄按照年齡進行分組。通過Projections.groupProperty方法,我們指定了用于分組的目標屬性“age”。生成的SQL語句:select this.age as y0_ from T_User this_group by this_.age。另外,對于多條件組合的統計、分組功能,我們可以借助ProjectionList完成,下面的例子中,我們統計了各個年齡層次中的用戶數量:

  1. ProjectionList projectionlist=Projections.ProjectionList();  
  2. projectionList.add(Projections.groupProperty("age"));  
  3. projectionList.add9Projections.rowCount());  
  4. Criteria criteria=session.createCriteria(TUser.class);  
  5. criteria.setProjection(projectionList); 

 


 

【編輯推薦】

  1. 強人Hibernate文檔筆記(上)
  2. 強人Hibernate文檔筆記(中)
  3. 強人Hibernate文檔筆記(下)
  4. Hibernate一對多關系的處理
  5. Hibernate的性能優化
責任編輯:仲衡 來源: MeChecksV博客
相關推薦

2009-11-30 16:46:29

學習Linux

2021-03-16 08:54:35

AQSAbstractQueJava

2011-07-04 10:39:57

Web

2017-07-02 18:04:53

塊加密算法AES算法

2019-01-07 15:29:07

HadoopYarn架構調度器

2021-07-20 15:20:02

FlatBuffers阿里云Java

2012-05-21 10:06:26

FrameworkCocoa

2022-09-26 09:01:15

語言數據JavaScript

2019-11-11 14:51:19

Java數據結構Properties

2018-11-09 16:24:25

物聯網云計算云系統

2021-04-27 08:54:43

ConcurrentH數據結構JDK8

2022-11-09 08:06:15

GreatSQLMGR模式

2012-02-21 13:55:45

JavaScript

2022-10-31 09:00:24

Promise數組參數

2009-11-18 13:30:37

Oracle Sequ

2022-12-02 09:13:28

SeataAT模式

2019-12-04 10:13:58

Kubernetes存儲Docker

2022-01-11 07:52:22

CSS 技巧代碼重構

2025-03-27 09:38:35

2016-10-14 13:53:05

JavascriptDOMWeb
點贊
收藏

51CTO技術棧公眾號

欧美日韩国产成人在线观看| 欧美日韩和欧美的一区二区| 美乳视频一区二区| 波多野结衣av无码| 婷婷综合网站| 亚洲精品wwwww| 五月天亚洲视频| a在线免费观看| 99国产麻豆精品| 国产精品爽爽爽| 九九精品在线观看视频| 免费不卡中文字幕在线| 日韩午夜av一区| 成年人小视频网站| 金瓶狂野欧美性猛交xxxx| 久久精品亚洲精品国产欧美| 91超碰在线电影| 99久久久久久久久| 国产精品videosex极品| 一本色道久久88精品综合| 亚洲911精品成人18网站| 久久野战av| 性久久久久久久久| 亚洲精品国产一区| 色资源在线观看| 国产激情精品久久久第一区二区| 国产精品69av| 日本一级片免费看| 国产精品av一区二区| 最近2019中文字幕mv免费看 | 麻豆视频在线看| 亚洲欧洲成人精品av97| 日本不卡二区高清三区| 香蕉视频911| 国产成人午夜精品影院观看视频| 国产精品久久久av久久久| 日韩精品手机在线| 精品成人免费| 久久久久久久爱| 日韩成人毛片视频| 天天做天天爱天天综合网| 亚洲色图第三页| 亚洲天堂网一区二区| 超碰一区二区三区| 日韩美一区二区三区| 中文av字幕在线观看| 久久亚洲人体| 欧美日韩一区三区四区| 日本美女高潮视频| 国产成人福利夜色影视| 欧美在线短视频| 成人一区二区三| 欧美日韩大片| 在线视频欧美精品| 手机看片福利日韩| 国产精品毛片久久久久久久久久99999999| 欧美日韩亚洲国产一区 | 丝袜美腿亚洲一区二区图片| 91成人在线播放| 青青操免费在线视频| 99精品99| 欧美一区二粉嫩精品国产一线天| 日本三级视频在线| 99国产精品久久久久久久| 18性欧美xxxⅹ性满足| 国产女同在线观看| 日韩高清在线电影| 国产主播喷水一区二区| 国产又黄又粗又长| 国产999精品久久久久久 | 欧美自拍偷拍| xvideos成人免费中文版| 中文国语毛片高清视频| 66久久国产| 性日韩欧美在线视频| av资源免费观看| 日韩经典中文字幕一区| 国产精品一区二区性色av| 国产精品久久久久久久久久久久久久久久 | 妺妺窝人体色777777| av伦理在线| 欧美性猛交xxxx乱大交3| 日本熟妇人妻中出| 国产精品欧美一区二区三区不卡| 日韩精品一区二区三区视频在线观看| 中文字幕在线视频播放| 免费av一区二区三区四区| 日韩色av导航| 日本少妇在线观看| 日本视频在线一区| 超碰97在线资源| 你懂的好爽在线观看| 中文字幕日韩一区| 免费成人在线视频网站| 国产一区二区色噜噜| 欧美成人vps| 国产精品天天干| 欧美日韩一视频区二区| 国产福利精品av综合导导航| 国内精品偷拍视频| 久久久久久综合| 蜜臀av.com| 日韩免费va| 日韩精品一区二区在线观看| 亚洲色成人网站www永久四虎| 天天综合网网欲色| 97超级碰碰碰| 国产福利视频导航| 日本一区二区在线不卡| av网站手机在线观看| 日韩高清不卡| 日韩精品在线观看视频| 91嫩草|国产丨精品入口| 亚洲欧美成人| 高清国产一区| 国产在线观看av| 91久久一区二区| 国产一级黄色录像| 一区二区三区在线电影| 国产精品久久久久久久av电影| 日韩一区二区三区不卡| 成人免费在线播放视频| 天天天干夜夜夜操| 亚洲亚洲免费| 57pao国产精品一区| 六月丁香色婷婷| 亚洲男人天堂av| 欧美精品久久久久久久久25p| 午夜精品福利影院| 性亚洲最疯狂xxxx高清| 亚洲精品人妻无码| 樱花草国产18久久久久| 特黄特黄一级片| 欧美oldwomenvideos| 国产精欧美一区二区三区| 视频三区在线观看| 欧美色视频日本高清在线观看| 久久av一区二区三| 欧美国产三级| 3d动漫啪啪精品一区二区免费| 欧美日本高清| 欧美日韩国产综合久久| 超碰97av在线| 久久爱www久久做| 伊人精品久久久久7777| 成人在线高清| 日韩在线视频国产| 一区二区三区日| 最新日韩av在线| 国产精品久久久久久久av福利| 91欧美国产| 91日韩在线播放| 国产鲁鲁视频在线观看特色| 91麻豆精品国产91久久久使用方法 | 色综合久久久久久中文网| 国产又粗又黄又爽的视频| 中文字幕一区二区5566日韩| 成人亚洲免费视频| 亚洲精品久久| 99高清视频有精品视频| 96av在线| 亚洲欧洲第一视频| 中文字幕一区二区三区四区视频| 中文字幕欧美日韩一区| www.污污视频| 欧美天天视频| 久久爱av电影| 日韩欧美一区二区三区在线观看| 中文字幕久久久| 国产乱色精品成人免费视频 | 亚洲激情免费视频| 99re91这里只有精品| 性色av一区二区三区| 国产三级在线免费观看| 欧美日韩国产中文| 欧美成人aaa片一区国产精品| www.亚洲精品| 免费看污黄网站| 中文字幕午夜精品一区二区三区| 国产视色精品亚洲一区二区| 欧美xx视频| 久久久精品视频在线观看| 欧美一区二区在线观看视频| 欧美性色xo影院| 成人免费毛片xxx| 99久久精品国产麻豆演员表| 亚洲激情在线观看视频| 欧美激情日韩| 日本高清不卡一区二区三| 成人噜噜噜噜| 青草热久免费精品视频 | 国产99精品一区| 91在线|亚洲| 伊人久久综合一区二区| 日韩亚洲国产中文字幕| 少妇人妻精品一区二区三区| 欧美三级电影一区| 日韩手机在线观看| 国产精品国产三级国产三级人妇 | 欧美另类精品xxxx孕妇| 天堂中文资源在线| 欧美二区乱c少妇| 91玉足脚交嫩脚丫在线播放| 综合欧美一区二区三区| 精品人妻互换一区二区三区| 国产99久久久国产精品潘金| 国产免费又粗又猛又爽| 国产日韩欧美一区| 好吊色视频988gao在线观看| 精品视频免费在线观看| 国产女主播一区二区| 人人玩人人添人人澡欧美| 欧美影院久久久| 欧美黄色视屏| 久久精品久久久久久| 国产日韩精品在线看| 亚洲成人免费网站| 国产乱码精品一区二区三区精东| 日韩欧美在线视频观看| 国产真人真事毛片| 亚洲精品一卡二卡| 成年人网站在线观看视频| 久久久久久9999| 中文字幕免费在线播放| 国产sm精品调教视频网站| 欧美视频亚洲图片| 蜜臀av性久久久久av蜜臀妖精 | 夜夜爽99久久国产综合精品女不卡| 欧美日韩一区二区三区在线电影| 91视频99| 天天综合在线观看| 国产欧美久久一区二区| 外国电影一区二区| 国产精品久久不能| 在线国产成人影院| 日本一区二区不卡| 日韩电影网站| 日本精品视频在线播放| 性欧美18xxxhd| 欧美亚洲第一页| 看黄在线观看| 97avcom| 韩国成人动漫| 国产97在线|亚洲| 天堂久久午夜av| 国产一区视频在线| 中文幕av一区二区三区佐山爱| 国产日韩av高清| 91精品国产一区二区在线观看| 成人福利视频网| 3d动漫一区二区三区在线观看| 成人黄色大片在线免费观看| 先锋影音网一区二区| 亚洲www在线观看| 国产精品xnxxcom| 91成人理论电影| 成人盗摄视频| 久99久视频| 啪啪亚洲精品| 日韩 欧美 高清| 欧美69xxx| 最新国产成人av网站网址麻豆| 国产精品久久一区二区三区不卡| 亚洲视频在线播放| www.黄在线观看| 视频在线观看99| 国产日产一区二区三区| 欧美风情在线观看| gogo高清午夜人体在线| 2020久久国产精品| 日本一道高清亚洲日美韩| 日韩免费观看高清| 欧美videos粗暴| 亚洲www视频| 久久av国产紧身裤| 欧美性bbwbbwbbwhd| 日韩欧美电影| 免费极品av一视觉盛宴| 99热这里只有精品8| 少妇黄色一级片| 国产成人av在线影院| 亚洲男人在线天堂| 欧美国产一区二区在线观看| 久久中文免费视频| 婷婷国产在线综合| 波多野结衣视频观看| 91精品国产一区二区三区蜜臀 | 亚洲黄色成人| 久久精品网站视频| 国精品**一区二区三区在线蜜桃| 国产人成视频在线观看| 国产视频视频一区| 青娱乐av在线| 日本韩国欧美在线| 亚洲成熟女性毛茸茸| 亚洲天堂成人在线| 国产色在线观看| 国产第一区电影| 亚洲综合网狠久久| 日韩亚洲视频在线| 一区在线播放| 福利片一区二区三区| av动漫一区二区| 久久精品亚洲a| 欧美天天综合色影久久精品| 国产视频手机在线观看| 亚洲人成电影在线播放| 污污影院在线观看| 国产免费一区二区三区在线观看| 国内精品免费| 黄色a级在线观看| 三级在线观看一区二区| 乳色吐息在线观看| 国产精品久久毛片av大全日韩| 日本熟妇毛耸耸xxxxxx| 91精品国产色综合久久| 国产精品ⅴa有声小说| 国内偷自视频区视频综合| 亚洲精品第一| 欧美三日本三级少妇三99| 欧美日韩国产一区精品一区| 在线观看国产中文字幕| 久久精品免费在线观看| 日韩aaaaaa| 日韩欧美一区中文| 求av网址在线观看| 国产成人拍精品视频午夜网站 | 视频精品一区二区| 日韩av无码一区二区三区不卡| 亚洲欧美日韩精品久久久久| 国产精品露脸视频| 亚洲色图欧美制服丝袜另类第一页 | 97精品视频在线观看自产线路二| 2021亚洲天堂| 在线电影院国产精品| 中文字幕在线播放| 国产精品久久久久久影视| 精品一区在线| 国产免费黄色av| 99久久精品免费看国产| 国产成人精品av久久| 日韩精品在线网站| 日韩经典av| 国产99视频精品免费视频36| 欧美日本亚洲韩国国产| 永久看看免费大片| 一区二区三区美女| 亚洲国产剧情在线观看| 久久99国产综合精品女同| 伊人精品久久| 一卡二卡三卡视频| 成人在线综合网站| 九九热国产视频| 亚洲第一中文字幕| 激情黄产视频在线免费观看| 久久久久久久久久久久久久久久av| 日韩一区二区免费看| 亚洲天堂网一区二区| 色婷婷av一区二区三区大白胸| 国产中文字幕在线| 国产精品人成电影在线观看| 成人3d动漫在线观看| 天堂av8在线| 又紧又大又爽精品一区二区| 亚洲精品一区二区三区四区| 久久人人爽人人| 亚洲三级性片| 亚洲天堂网一区| 中文字幕在线不卡一区二区三区| a级片免费观看| 久久乐国产精品| 婷婷精品在线| 污版视频在线观看| 亚洲乱码国产乱码精品精可以看| 性猛交富婆╳xxx乱大交天津| 午夜精品久久久久久99热| 亚洲成a人片77777在线播放| 午夜欧美福利视频| 亚洲三级在线播放| 日本高清视频免费观看| 国产mv久久久| 亚洲综合婷婷| 成人手机在线免费视频| 欧洲一区二区av| 肉体视频在线| 欧美日韩一区二区三| 精品一区二区三区香蕉蜜桃| 久久久久亚洲av成人片| 亚洲男人天堂网站| 精品国产一级| 日韩精品视频一区二区在线观看| 国产精品欧美久久久久无广告| www.色播.com| 国产福利精品av综合导导航| 中文字幕免费一区二区| 熟女俱乐部一区二区视频在线| 欧美日韩国产系列| 亚洲女同志freevdieo| 99re8这里只有精品| 久久久久久久久久久99999|