我有以下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[]>
,但每当我尝试访问String[]
中的ArrayList<String[]>
时,我都会收到此错误:
java.util.concurrent.ExecutionException: javax.ejb.EJBException:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
ArrayList<String[]>
不是HQL查询返回的内容吗?
答案 0 :(得分:2)
正如您在错误消息中看到的那样,您获得List<Object[]>
而不是String。结果值不一定是字符串(可能它们在您的示例中,但通常不是)。