2011-03-24 45 views
2

我的Java代碼,org.hibernate.Query在調用list方法時返回結果?

Query q=session.createSQLQuery(" { call procedureSample(?) }"); 

List list=q.list(); 

procedureSample返回三個值,比如(INT,字符串,整數)的過程。

  1. 如何獲得結果?

  2. 是否需要創建bean?如果是這樣,我如何命名bean中的字段,因爲我的過程中的int結果是像count這樣的函數?

  3. 如何從列表list實例中檢索結果?

回答

1

你會得到的是一個List<Object[]>,即行列表,每行表示爲一個對象數組。

如何訪問過程結果取決於結果是否作爲一行返回3列(在這種情況下,您可以訪問第三個元素作爲list.get(0)[2])或3列有一列(訪問第三個元素會然後是list.get(2)[0])。

編輯:請注意,這是假定您具備Java 5+和投listList<Object[]>

1

你的列表將包含3項。您可以遍歷列表並獲取值。

例如。

Query q=session.createSQLQuery(" { call procedureSample(?) }"); 

List list=q.list(); 

Iterator iter=list.iterator(); 
while(iter.hasNext()) { 
    System.out.println(iter.next()); 
} 

沒有必要在這種情況下創建bean我猜。