您好,登錄后才能下訂單哦!
Hibernate中怎么實現(xiàn)屬性查詢,針對這個問題,這篇文章詳細介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
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]);
}
如果覺得返回數(shù)組的方式不夠符合面向?qū)ο蟮娘L(fēng)格,也可以使用構(gòu)造對象實例的方法對數(shù)組進行封裝:
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());
}
著愛與那個就比較形象化一些,但是有一點要注意的是這個查詢結(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)知識。
免責(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)容。