熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

深入淺出Hibernate的屬性查詢

2013-11-23 20:09:40  來源: Java開源技術 

  《深入淺出Hibernate》實在是本好書使用Hibernate的人都應該讀一讀夏昕寫的文章的確讀起來不累有些書是讀起來很累的

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

     List list =  sessioncreateQuery(select usernameuserage from TUSER user)list();
    Iterator it = erator();
    while(ithasNext())
    {
          Object[] results = (Object[])itnext();
          Systemoutprintln(results[]);
          Systemoutprintln(results[]);
    }
    如果覺得返回數組的方式不夠符合面向對象的風格也可以使用構造對象實例的方法對數組進行封裝

        List list = thissessioncreateQuery( select new TUser(usernameuserage) from TUser as user)list();
    Iterator if = erator();
    while(ithasNext())
    {
        TUser user = (TUser)itnext();
        Systemoutprintln(usergetName());
    }
    著愛與那個就比較形象化一些但是有一點要注意的是這個查詢結果的TUser對象僅僅是一普通的 java 對象進用於對查詢結果的封裝除了在構造是賦予的屬性值外其他屬性均為未賦值狀態這就意味著我們無法通過 Session 對此對象進行更新如果企圖對 user 對象更新將導致向數據庫插入一條新的記錄而不是更新原有記錄

        while(ithasNext())
    {
       TUser user = (TUser)itnext();
        usersetName(test);
        sessionsaveOrUpdate(user);//這裡將導致一次 insert 操作而非 update
    }
    也可以使用像 SQL 那樣的統計函數比如

 

  selet count(*)min(userage) from TUser as user
    select upper(username) from TUser as user
    select distinct username from TUser as user


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28047.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.