2012-06-26 137 views
1

多個值,我有以下HQL查詢:返回從HQL查詢

SELECT ita.invoiceType, ita.agreementNumber, itr.ruleCategory 
FROM InvoiceTypeAgreements ita, InvoiceTypeRules itr 
WHERE ita.invoiceType = itr.invoiceType 
AND ita.agreementNumber IN (?1) 
AND itr.ruleCategory IN (?2) 

我使用query.getResultList()得到的值從該回來了。我認爲它返回一個ArrayList<String[]>但每當我嘗試訪問的ArrayList<String[]>String[]的我得到這個錯誤:

java.util.concurrent.ExecutionException: javax.ejb.EJBException: 
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; 

是一個ArrayList<String[]>不是什麼HQL查詢返回?

回答

2

正如您在錯誤消息中看到的那樣,您將得到List<Object[]>而不是String。結果值不一定是字符串(也許它們在你的例子中,但通常它們不是)。

+0

我明白了。它需要是一個對象數組,然後我需要爲每個單獨的對象轉換一個String。它現在有效。謝謝。 – Graham