中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hibernate查詢語句有哪些

發布時間:2021-12-05 15:38:54 來源:億速云 閱讀:168 作者:小新 欄目:編程語言

小編給大家分享一下Hibernate查詢語句有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1. select子句

select 子句選擇將哪些對象與屬性返 回到查詢結果集中. 考慮如下情況:

select mate   from Cat as cat       inner join cat.mate as mate

該語句將選擇mates of other Cats。(其他貓的配偶) 實際上, 你可以更簡潔的用以下的查詢語句表達相同的含義:

select cat.mate from Cat cat

Hibernate查詢語句可以返回值為任何類型的屬性,包括返回類型為某種組件(Component)的屬性:

select cat.name from DomesticCat cat  where cat.name like 'fri%'  select cust.name.firstName from Customer as cust

Hibernate查詢語句可以返回多個對象和(或)屬性,存放在 Object[]隊列中,

select mother, offspr, mate.name   from DomesticCat as mother      inner join mother.mate as mate      left outer join mother.kittens as offspr

或存放在一個List對象中,

select new list(mother, offspr, mate.name)  from DomesticCat as mother      inner join mother.mate as mate      left outer join mother.kittens as offspr

也可能直接返回一個實際的類型安全的Java對象,

select new Family(mother, mate, offspr)  from DomesticCat as mother      join mother.mate as mate      left join mother.kittens as offspr

假設類Family有一個合適的構造函數.

你可以使用關鍵字as給“被選擇了的表達式”指派別名:

select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n  from Cat cat

這種做法在與子句select new map一起使用時最有用:

select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )  from Cat cat

該Hibernate查詢語句返回了一個Map的對象,內容是別名與被選擇的值組成的名-值映射。

3. 聚集函數

HQL查詢甚至可以返回作用于屬性之上的聚集函數的計算結果:

select avg(cat.weight), sum(cat.weight), max(cat.weight), count(cat)  from Cat cat

受支持的聚集函數如下:

avg(...), sum(...), min(...), max(...)    count(*)    count(...), count(distinct ...), count(all...)

你可以在選擇子句中使用數學操作符、連接以及經過驗證的SQL函數:

select cat.weight + sum(kitten.weight)   from Cat cat       join cat.kittens kitten  group by cat.id, cat.weight  select firstName||' '||initial||' '||upper(lastName) from Person

關鍵字distinct與all 也可以使用,它們具有與SQL相同的語義.

select distinct cat.name from Cat cat   select count(distinct cat.name), count(cat) from Cat cat

3. 多態查詢

一個如下的Hibernate查詢語句:

from Cat as cat

不僅返回Cat類的實例, 也同時返回子類 DomesticCat的實例. Hibernate 可以在from子句中指定任何 Java 類或接口. 查詢會返回繼承了該類的所有持久化子類 的實例或返回聲明了該接口的所有持久化類的實例。下面的查詢語句返回所有的被持久化的對象:

from java.lang.Object o

接口Named 可能被各種各樣的持久化類聲明:

from Named n, Named m where n.name = m.name

注意:***的兩個查詢將需要超過一個的SQL SELECT.這表明order by子句 沒有對整個結果集進行正確的排序. (這也說明你不能對這樣的查詢使用Query.scroll()方法.)

以上是“Hibernate查詢語句有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合作市| 天台县| 潼南县| 思茅市| 资源县| 崇阳县| 竹北市| 包头市| 安岳县| 兴隆县| 南靖县| 开阳县| 千阳县| 吉木乃县| 双辽市| 洪泽县| 广昌县| 荥阳市| 博白县| 平乐县| 大丰市| 宣武区| 盐亭县| 邹平县| 静乐县| 谢通门县| 中宁县| 华容县| 枣强县| 灵台县| 芦溪县| 扎赉特旗| 山阳县| 全南县| 彭阳县| 台州市| 扎囊县| 贺兰县| 景德镇市| 专栏| 游戏|