2016-04-06 10 views
1

を働いていないことは私のコードです。 ここでエラーがある: - :あなたは、例外に基づいてはここ

for (Object[] result : results) { 
     for (Object obj : result) { 
     System.out.println(obj); 
    } 
} 

OR EVEN BETTER

for (Object[] result : results) { 
      Arrays.toString(result)); 
    } 
+0

try(String result:results){ – SeeuD1

+0

10年以上前にStringBuilderに置き換えられたため、StringBufferを使用しないでください。 –

答えて

4

java.lang.String cannot be cast to [Ljava.lang.Object; 
+0

。 (m.idを選択すると)文字列を返し、2つ以上を選択すると(m.id、m.messageを選択)、オブジェクトを返します..ありがとう.. –

+0

メソッドのドキュメントから:クエリーを実行すると、SQL結果の各行がObject []型の結果(または選択リストに列が1つしかない場合はObject型の結果)として返されます。 – chrylis

1

あなたは

代わりに実行し、間違った配列を印刷していますそれはのように見えますはList<Object[]>ではなくList<String>を返します。あなたはあるため報告例外のループに入っているようだ私にSystem.out.println(results ==null ? "empty", results.size());

のようなものにSystem.out.println(results);を変更することにより、返されたリスト内の結果があることを確認でき

List<String> results = query.getResultList(); 
System.out.println(results); 
for (String result : results) { 
    System.out.println(result); 
} 
+0

いいえ..私は既にそれがそれぞれのために入っていないと言いました。 –

0

にあなたのコードを変更しjava.lang.String cannot be cast to [Ljava.lang.Object;が、上記の答えにErnaが示すように、返されるリストはObjectの配列ではなくStringのリストであるかもしれません。