0
我正在遍歷從本機SQL查詢獲得的對象,以便能夠打印一個實體的屬性。對於這個建議我使用下面的代碼:迭代來自SQL JPA本機查詢的結果的問題
public<T> ArrayList exectuteStoreProcedure(String sqlQuery){
setEntities();
int colcount = 0;
int rowcount = 0;
int rowcounter = 0;
ArrayList a = new ArrayList();
try{
Query query = em.createNativeQuery(sqlQuery);
rowcount = query.getResultList().size();
colcount = ((Class[]) query.getResultList().get(0)).length;
String [][] array = new String [rowcount][colcount];
for (Iterator<String[]> rs = query.getResultList().iterator(); rs.hasNext();) {
String[] obj = rs.next();
String[] record = new String[colcount];
System.arraycopy(obj, 0, record, 0, colcount);
array[ rowcounter++] = (String[]) record;
}
a.add(array);
}catch(Exception ex){
et.rollback();
}
closeEntities();
return a;
}
執行失敗拋出以下異常:
java.lang.ClassCastException:[Ljava.lang.Object;不能轉換爲[Ljava.lang.Class;
在debbug模式下運行程序後,我發現,這個問題是與(類[])這個命令行declartion:
colcount = ((Class[]) query.getResultList().get(0)).length;
我想知道我怎麼能拿列的長度。有誰知道如何?我的實體是Idioma,它由String palabra,String idioma和int wordID組成;
在此先感謝!