程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Hibernate屬性查詢簡介

Hibernate屬性查詢簡介

編輯:關於JAVA

本文向大家介紹Hibernate屬性查詢,可能好多人還不了解Hibernate屬性查詢,沒有關系,看完本文 你肯定有不少收獲,希望本文能教會你更多東西。

今天說一下Hibernate屬性查詢:使用HQL的時候並不是把 hbm.xml 裡面的所有屬性取出來,只取出有 用的屬性便可以了,舉個例子:

List list =session.createQuery
("select user.name,user.age from TUSER user").list();
Iterator it = list.iterator();
while(it.hasNext())
...{
Object[] results = (Object[])it.next();
System.out.println(results[0]);
System.out.println(results[1]);
}

如果覺得返回數組的方式不夠符合面向對象的風格,也可以使用構造對象實例的方法對數組進行封裝 :

List list = this.session.createQuery
(" select new TUser(user.name,user.age) from TUser as user").list();
Iterator if = list.iterator();
while(it.hasNext())
...{
TUser user = (TUser)it.next();
System.out.println(user.getName());
}

著愛與那個就比較形象化一些,但是有一點要注意的是這個查詢結果的TUser對象僅僅是一普通的 java 對象,進用於對查詢結果的封裝,除了在構造是賦予的屬性值外,其他屬性均為未賦值狀態,這就 意味著,我們無法通過 Session 對此對象進行更新,如果企圖對 user 對象更新將導致向數據庫插入一 條新的記錄,而不是更新原有記錄:

while(it.hasNext())
...{
  TUser user = (TUser)it.next();
user.setName("test");
session.saveOrUpdate(user);
//這裡將導致一次 insert 操作,而非 update
}

也可以使用像 SQL 那樣的統計函數,比如:

selet count(*),min(user.age) from TUser as user
select upper(user.name) from TUser as user
select distinct user.name from TUser as user

以上介紹Hibernate屬性查詢。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved