天天看點

六、hibernate之HQL

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