溫馨提示×

溫馨提示×

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

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

六、hibernate之HQL

發(fā)布時間:2020-04-05 00:26:55 來源:網(wǎng)絡(luò) 閱讀:307 作者:linzheng 欄目:開發(fā)技術(shù)

一. HQL

1. 大小寫

HQL語句本身和SQL一樣不區(qū)分大小寫, 但其中的類名, 屬性名, (綁定參數(shù)的)數(shù)據(jù)區(qū)分大小寫.

2. 從類中而不是從表中操作

如果類有子類, 會連同子類一起查詢, 不論子類是否和父類或者子類之間是否映射的同一張表.

3. 類別名, 屬性列表, Where條件, distinct, order by , group by...having
  • 從類中查詢, 可以給類名加別名.(類似于SQL, 其中as可以省略). 注意: SELECT e From Employee as e是正確的, 但是SELECT Employee From Employee 是錯誤的, 可以直接用From Employee.
  • 可以只查詢實體的部分屬性, 類似于SQL的查詢列列表, 如果方法返回的是一個列表, 列表中的元素為Object(單個屬性查詢時)或者Object[](多個屬性查詢時), 需要根據(jù)具體類型做強制轉(zhuǎn)換.
  • 屬性也可以加別名new, 但必須帶上as (Hibernate 3.2.1 以后可用.)
  • 也可以使用Where過濾數(shù)據(jù), 同SQL一樣支持(以及通配符 % _ ) :

=, <>, >, <, >=, <=, [not] in, is [not] null, [not] like, [not] between ... and..

  • 支持SQL函數(shù)和distinct關(guān)鍵字
  • 支持order by , group by... having關(guān)鍵字
4. Hibernate2 的find的參數(shù)綁定
5. Hibernate3 的DML 性質(zhì)的HQL

 

String dmlHql = "update User set sex='Female' where id='2' ";

Query query = session.createQuery(dmlHql);

int changerow = query.execuyeUpdate();

 

dmlHql = "delete User where id='6' ";

query = session.createQuery(dmlHql);

changerow= query.execuyeUpdate();

 

 

.... //commit ...

6. 聯(lián)合查詢

支持inner join, left outer join, right outer join , full join

7. 子查詢

支持子查詢

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI