posts - 56, comments - 54, trackbacks - 0, articles - 4
             ::  ::  :: 聯(lián)系 :: 聚合  :: 管理

          HQL的返回值該怎么取得

          Posted on 2005-12-02 09:41 Terry的Blog 閱讀(389) 評論(0)  編輯  收藏 所屬分類: java語言
          取單個字段,會返回字段List:

          java代碼: 
          Query q = s.createQuery("select c.id from Cat as c");
          List l = q.list();
          for (i=0; i< l.size(); i++) { 
            Long id = (Long) l.get(i);
            System.out.println(id.longValue());
          }

          取多個字段,Hibernate把每個id和name做成一個2個元素的單維數(shù)組,List實際上是一個單維數(shù)組的集合。

          java代碼: 
          Query q = s.createQuery("select Cat.id, Cat.name, from Cat ");
          List l = q.list();
          for (int i=0;  i< l.size(); i++) {
            Object[] row = (Object[]) l.get(i);
            Long id = (Long) row[0];
            String name = (String) row[1]
          }

          在這種情況下,HQL是不會去構(gòu)造PO的,這一點很容易驗證。JCS是對象Cache,如果寫了這樣的HQL,JCS里面是空的,說明Hibernate沒有構(gòu)造PO,如果再加上一個對象c本身,JCS里面就有數(shù)據(jù)了,如下:

          java代碼: 
          Query q = s.createQuery("select c.id, c.name,c from Cat as c");
          List l = q.list();
          for (int i=0; i< l.size(); ; i++) {
            Object[] row = (Object[]) l.get(i);
            Long id = (Long) row[0];
            String name = (String) row[1];
            Cat c = (Cat) row[2]
          }
          主站蜘蛛池模板: 通河县| 昌宁县| 巴林左旗| 星座| 天全县| 缙云县| 宜君县| 淮南市| 伊金霍洛旗| 长白| 峨边| 夏河县| 于田县| 江城| 连州市| 襄城县| 木兰县| 青龙| 修文县| 贞丰县| 涡阳县| 台东县| 喜德县| 新兴县| 抚顺市| 平安县| 桦南县| 甘肃省| 方城县| 沙雅县| 和龙市| 铜川市| 时尚| 漠河县| 崇州市| 五家渠市| 苍梧县| 罗定市| 眉山市| 贵德县| 那曲县|