溫馨提示×

溫馨提示×

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

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

Hibernate中怎么實現(xiàn)屬性查詢

發(fā)布時間:2021-07-19 15:53:17 來源:億速云 閱讀:137 作者:Leah 欄目:編程語言

Hibernate中怎么實現(xiàn)屬性查詢,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

  1. List list =session.createQuery
    ("select user.name,user.age from TUSER user").list();  

  2. Iterator it = list.iterator();  

  3. while(it.hasNext())  

  4. ...{  

  5. Object[] results = (Object[])it.next();  

  6. System.out.println(results[0]);  

  7. System.out.println(results[1]);  

如果覺得返回數(shù)組的方式不夠符合面向?qū)ο蟮娘L(fēng)格,也可以使用構(gòu)造對象實例的方法對數(shù)組進行封裝:

  1. List list = this.session.createQuery
    (" select new TUser(user.name,user.age) from TUser as user").list();  

  2. Iterator if = list.iterator();  

  3. while(it.hasNext())  

  4. ...{  

  5. TUser user = (TUser)it.next();  

  6. System.out.println(user.getName());  

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

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

也可以使用像 SQL 那樣的統(tǒng)計函數(shù),比如:

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

關(guān)于Hibernate中怎么實現(xiàn)屬性查詢問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向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