posts - 56, comments - 54, trackbacks - 0, articles - 4
             ::  ::  :: 聯系 :: 聚合  :: 管理

          軟件下載

          積分與排名

          • 積分 - 131130
          • 排名 - 471

          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個元素的單維數組,List實際上是一個單維數組的集合。

          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是不會去構造PO的,這一點很容易驗證。JCS是對象Cache,如果寫了這樣的HQL,JCS里面是空的,說明Hibernate沒有構造PO,如果再加上一個對象c本身,JCS里面就有數據了,如下:

          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]
          }
          主站蜘蛛池模板: 汉川市| 城口县| 墨竹工卡县| 侯马市| 枣强县| 唐河县| 敦煌市| 郁南县| 洪雅县| 江达县| 石柱| 乌拉特前旗| 泸定县| 白朗县| 西青区| 阳曲县| 象山县| 平潭县| 乌拉特中旗| 突泉县| 土默特右旗| 当涂县| 佳木斯市| 漠河县| 乌苏市| 陆川县| 赣州市| 固安县| 柳州市| 山西省| 台江县| 大丰市| 盐池县| 长岭县| 壤塘县| 博客| 商水县| 和田市| 康保县| 固始县| 竹山县|