2016-03-21 69 views
0

我想連接兩個表檢索對象數據: T1:ID,姓名,電子郵件 T2:ID,地址如何休眠

加入我這樣做:

String hql="select sd.name,tt.name from T1 sd,T2 tt where sd.id=tt.id"; 
      Query q=ss.createQuery(hql); 
      List l2=q.list(); 
      Object o1=l2.get(0); 
      System.out.println("-----------"); 
      System.out.println(o1.toString()); 
      System.out.println("-----------"); 

它返回的對象,但沒有得到如何檢索值作爲返回的對象不是實體對象。

+0

也許這會回答你的問題http://stackoverflow.com/questions/13607337/hibernate-query-for-selecting-multiple-values – RubioRic

+0

我敢肯定,有更好的,更自動化的方式,以做到這一點,但按照寫法,它有點難以閃現什麼你真的在問。 – ChiefTwoPencils

+0

@Rubio:謝謝你!它幫助了很多 – Rake

回答

1

每一個結果是一個對象Array.The數組的大小是選擇列

List l2=q.list(); 
Object[] o1=(Object[])l2.get(0);//The size is should be 2 
System.out.println(o1[0]); 
System.out.println(o1[1]); 
+0

謝謝......它就像RubioRic的答案。 – Rake

0

它將返回的Objectarray,你需要強制轉換,按您選擇的值,如姓名等

List<Object[]> values= (List<Object[]>)q.list(); 
    for(Object[] val: values){ 

.... 
//your specific type values 
} 
+0

謝謝......它就像RubioRic的答案 – Rake

0

另一種選擇是創建你的連接表視圖,然後,創建休眠實體基於該視圖