2014-04-20 269 views
0

我正在學習JPA並想知道如何使用下面的查詢生成報告。在jpa中生成報告

Query query = em 
      .createQuery("SELECT t.firstName, t.lastName, t.salary FROM Teacher t"); 

    List results = query.getResultList(); 
    Object[] objects = results.toArray(new Object[results.size()]); 
    for (Object object : objects) { 
     System.out.println(object);// here I want to print firstName, lastName 
    } 

據我所知,getResultList()方法返回對象數組列表。但是我想在這裏打印firstNamelastNamesalary。我怎樣才能做到這一點?我不能簡單地將Object投入String

+0

你有一個教師實體,對嗎? –

+0

爲什麼你不能將Object轉換爲String,如果你知道該對象是一個String?這就是演員的全部內容。爲什麼你將List 變成Object [] []而不是簡單地遍歷列表? –

+0

@JBNizet,我沒有使用列表檢索列表,這是我的錯誤。謝謝你的迴應先生:) –

回答

1

試試看。

List<Object[]> list = query.getResultList(); 
for (int index = 0; index < list.size(); index++) { 
    Object[] objArr = list.get(index); //this will return a row of your result into objArr 
    for (int j = 0; j < 3; j++) { 
     //here, you are now iterating through the columns in each row. Since your select query has 3 columns j <3 in the for loop 
     System.out.println(objArr[j].toString()); 
    } 
} 
+0

這對我有效。謝謝@jpr先生/女士。 –