2014-04-20 193 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先生/女士。 –