成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

簡述Hibernate部分查詢語言(一)

開發 后端
Hibernate配備了一種非常強大的Hibernate查詢語言,這種語言看上去很像SQL。但是不要被語法結構 上的相似所迷惑,HQL是非常有意識的被設計為完全面向對象的查詢,它可理解如繼承、多態 和關聯之類的概念。

Hibernate配備了一種非常強大的Hibernate查詢語言,這種語言看上去很像SQL。本文主要介紹大小寫敏感性問題、from子句、關聯(Association)與連接(Join)等。但是不要被語法結構 上的相似所迷惑,HQL是非常有意識的被設計為完全面向對象的查詢,它可以理解如繼承、多態 和關聯之類的概念。

1. 大小寫敏感性問題

除了Java類與屬性的名稱外,查詢語句對大小寫并不敏感。 所以 SeLeCT 與 sELEct 以及 SELECT 是相同的,但是 org.hibernate.eg.FOO 并不等價于 org.hibernate.eg.Foo 并且 foo.barSet 也不等價于 foo.BARSET。

本手冊中的HQL關鍵字將使用小寫字母. 很多用戶發現使用完全大寫的關鍵字會使查詢語句 的可讀性更強, 但我們發現,當把查詢語句嵌入到Java語句中的時候使用大寫關鍵字比較難看。

2. from子句

最簡單的Hibernate查詢語句的形式如下:

  1. from eg.Cat 

該子句簡單的返回eg.Cat類的所有實例。 通常我們不需要使用類的全限定名, 因為 auto-import(自動引入) 是缺省的情況。 所以我們幾乎只使用如下的簡單寫法:

  1. from Cat 

大多數情況下, 你需要指定一個別名, 原因是你可能需要 在Hibernate查詢語言的其它部分引用到Cat

  1. om Cat as cat 

這個語句把別名cat指定給類Cat 的實例, 這樣我們就可以在隨后的查詢中使用此別名了。 關鍵字as 是可選的,我們也可以這樣寫:

  1. from Cat cat 

子句中可以同時出現多個類, 其查詢結果是產生一個笛卡兒積或產生跨表的連接。

  1. from Formula, Parameter  
  2. from Formula as form, Parameter as param  

    查詢語句中別名的開頭部分小寫被認為是實踐中的好習慣, 這樣做與Java變量的命名標準保持了一致 (比如,domesticCat)。

    3. 關聯(Association)與連接(Join)

    Hibernate查詢語言,我們也可以為相關聯的實體甚至是對一個集合中的全部元素指定一個別名, 這時要使用關鍵字join。

    1. from Cat as cat   
    2.     inner join cat.mate as mate  
    3.     left outer join cat.kittens as kitten  
    4. from Cat as cat left join cat.mate.kittens as kittens  
    5. from Formula form full join form.parameter param  

    受支持的連接類型是從ANSI SQL中借鑒來的。

    inner join(內連接)

    left outer join(左外連接)

    right outer join(右外連接)

    full join (全連接,并不常用)

    語句inner join, left outer join 以及 right outer join 可以簡寫。

    1. from Cat as cat   
    2.     join cat.mate as mate  
    3.     left join cat.kittens as kitten 

    還有,一個"fetch"連接允許僅僅使用一個選擇語句就將相關聯的對象或一組值的集合隨著他們的父對象的初始化而被初始化,這種方法在使用到集合的情況下尤其有用,對于關聯和集合來說,它有效的代替了映射文件中的外聯接 與延遲聲明(lazy declarations). 查看 第 19.1 節 “ 抓取策略(Fetching strategies) ” 以獲得等多的信息。

    1. from Cat as cat   
    2.     inner join fetch cat.mate  
    3.     left join fetch cat.kittens 

    一個fetch連接通常不需要被指定別名, 因為相關聯的對象不應當被用在 where 子句 (或其它任何子句)中。同時,相關聯的對象 并不在查詢的結果中直接返回,但可以通過他們的父對象來訪問到他們。

    注意,在目前的版本中,一個查詢中只有一個集合角色能被連接取得(超過一個的角色將會導致形成一個笛卡兒積)。 同時注意fetch構造變量在使用了scroll() 或 iterate()函數 的查詢中是不能使用的。***注意,使用full join fetch 與 right join fetch是沒有意義的。

    如果你使用屬性級別的延遲獲取(lazy fetching)(這是通過重新編寫字節碼實現的),可以使用 fetch all properties 來強制Hibernate立即取得那些原本需要延遲加載的屬性(在***個查詢中)。

    1. from Document fetch all properties order by name  
    2. from Document doc fetch all properties where lower(doc.name) like '%cats%'  

    【編輯推薦】

    1. 簡述Hibernate部分查詢語言(二)
    2. Hibernate的重要技術簡介
    3. Struts-Spring-Hibernate案例
    4. Hibernate Sessin接口常用方法
    5. Hibernate事務全面介紹
    責任編輯:仲衡 來源: redsaga
    相關推薦

    2009-09-24 10:35:10

    Hibernate查詢

    2009-09-23 09:16:25

    Hibernate復合

    2009-09-25 16:57:49

    Hibernate查詢

    2009-09-29 16:29:40

    Hibernate查詢

    2009-09-29 16:41:58

    Hibernate S

    2009-09-24 11:17:32

    Hibernate查詢

    2009-09-25 12:31:13

    Hibernate映射

    2009-09-29 17:22:30

    Hibernate S

    2009-09-28 13:45:59

    Hibernate歷史

    2009-09-29 10:37:29

    Hibernate持久

    2009-09-29 15:58:22

    Hibernate映射

    2011-03-24 11:37:41

    Hibernate

    2009-09-28 11:12:52

    Hibernate O

    2009-09-22 16:04:50

    Hibernate連接

    2009-09-24 17:28:29

    Hibernate S

    2009-09-29 09:44:52

    Hibernate事務

    2009-06-26 16:09:21

    Hibernate查詢HQL

    2009-09-25 14:04:09

    Hibernate eHibernate h

    2010-04-21 10:22:25

    Unix 命令

    2009-06-17 14:41:57

    Hibernate查詢
    點贊
    收藏

    51CTO技術棧公眾號

    主站蜘蛛池模板: 精品综合久久久 | 日韩三级免费观看 | 欧美一二三四成人免费视频 | 精品国产一区二区三区成人影院 | 国产亚洲成av人片在线观看桃 | 精品欧美乱码久久久久久1区2区 | 五月天激情电影 | 天天干b| 一区在线视频 | 97久久精品午夜一区二区 | 一区二区国产在线 | 久久av资源网 | 亚洲一区二区免费电影 | 午夜精品久久久久久久久久久久 | 久草在线 | 日批的视频 | 日本一区二区三区免费观看 | 精品一区二区久久久久久久网站 | 午夜视频免费网站 | 国产美女一区二区 | 国产精品亚洲综合 | 色综合久久久久 | 亚洲精品乱码久久久久久黑人 | 久久久久国产精品一区二区 | 中文字幕在线观看av | 国产精品日韩 | 狠狠躁躁夜夜躁波多野结依 | 亚洲成av人片在线观看无码 | 国产成人精品一区二 | 国产精品乱码一区二三区小蝌蚪 | 9999久久| 三级特黄特色视频 | 男女下面一进一出网站 | 成人精品在线观看 | 久久免费国产视频 | 久久精品国产99国产精品亚洲 | 精品欧美色视频网站在线观看 | 成人中文网 | 日韩欧美电影在线 | 九色一区 | 国产成人免费视频网站高清观看视频 |