1

次の 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 クエリが返すものではありませんか?

4

1 に答える 1

2

エラー メッセージでわかるように、List<Object[]>文字列ではなく取得します。結果の値は必ずしも文字列ではありません (おそらくあなたの例ではそうですが、一般的にはそうではありません)。

于 2012-06-26T15:28:56.010 に答える