HQL語句本身和SQL一樣不區分大小寫, 但其中的類名, 屬性名, (綁定參數的)資料區分大小寫.
如果類有子類, 會連同子類一起查詢, 不論子類是否和父類或者子類之間是否映射的同一張表.
從類中查詢, 可以給類名加别名.(類似于SQL, 其中as可以省略). 注意: SELECT e From Employee as e是正确的, 但是SELECT Employee From Employee 是錯誤的, 可以直接用From Employee.
可以隻查詢實體的部分屬性, 類似于SQL的查詢列清單, 如果方法傳回的是一個清單, 清單中的元素為Object(單個屬性查詢時)或者Object[](多個屬性查詢時), 需要根據具體類型做強制轉換.
屬性也可以加别名new, 但必須帶上as (Hibernate 3.2.1 以後可用.)
也可以使用Where過濾資料, 同SQL一樣支援(以及通配符 % _ ) :
=, <>, >, <, >=, <=, [not] in, is [not] null, [not] like, [not] between ... and..
支援SQL函數和distinct關鍵字
支援order by , group by... having關鍵字
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 ...
支援inner join, left outer join, right outer join , full join
支援子查詢
本文轉自linzheng 51CTO部落格,原文連結:http://blog.51cto.com/linzheng/1080808