2013-09-16 67 views
0

我想列到HQL查詢結果的名稱(用unkwon查詢內容&類「學生」 attribut)如何在HQL獲得列名(如得到結果集元數據)

>  Query query = session.createQuery("from Student s "); 
>  ScrollableResults list = query.scroll(ScrollMode.FORWARD_ONLY); 
>  
>  while (list.next()) { 
>  
>   for(Object obj : list.get()){ 
>     System.out.println(">>>>>>>>>>>>: "+ obj); 
>     } 
>      
>   } 

這樣

Statement stmt = conn.createStatement(); 
    ResultSet resultSet = stmt.executeQuery("SELECT * FROM student"); 
     ResultSetMetaData md = resultSet.getMetaData(); 

      for (int i = 1; i <= md.getColumnCount(); i++) 
       System.out.print(md.getColumnLabel(i) + " "); 

回答

0

您可以致電query.list()。它會返回一張地圖列表,每行一張地圖。每個映射都會將列名映射到與給定行的列值對應的對象。

閱讀的第一張地圖,它的鍵集將包含在查詢結果中的字段的名稱。

+0

返回該鍵0 =>值: 「XXXX」 – user2784559

+0

@ user2784559:哎呀!您可以嘗試獲取有關Student類的元數據:http://stackoverflow.com/questions/6576014/hibernate-query-metadata – Olaf

+0

我們不知道類的概率,因爲查詢很好地由xml發送;我們只有查詢返回的內容(「SELECT * FROM STUDENT」)就是例子 – user2784559