1
 Query query = s.createQuery("from ClientList");

 List <String> results = query.list();
 Iterator<String> it = results.iterator();
 while(it.hasNext())
 {
     Object[] row = (Object[]) it.next();

     System.out.println("ReturnValues==========" + results);

     Map<String, String> jsonObject = new HashMap<String, String>();
     jsonObject.put("Record_Id", (String) row[0]);
     jsonObject.put("Client_Code", (String)row[1]);
     jsonObject.put("Client_Description", (String)row[2]);

     returnValues.add(jsonObject);
}

テーブルの最初の列には整数値が含まれています。次のエラー メッセージが表示されます。

Exception===java.lang.ClassCastException:  cannot be cast to [Ljava.lang.Object;
4

3 に答える 3

1

イテレータは必要ありませんresults。 foreach ループでループできます。

List <String> results =query.list();
for(String result: results) {
   String[] row = /* user result.split(...)  to get attributes*/

 System.out.println("ReturnValues=========="+results);
 Map<String, String> JSonObject=new HashMap<String, String>();
 JSonObject.put("Record_Id", row[0]);
 JSonObject.put("Client_Code", row[1]);
 JSonObject.put("Client_Description",row[2]);
 ReturnValues.add(JSonObject);

}

String.split(String regex)ドキュメントを確認してください。

于 2013-09-07T10:28:03.473 に答える
0
Query query = s.createQuery("from ClientList");

 List <String> results = query.list();
 Iterator<String> it = results.iterator();
     while(it.hasNext())`enter code here`
 {
     Object[] row = (Object[]) it.next();

     System.out.println("ReturnValues==========" + results);

     Map<String, String> jsonObject = new HashMap<String, String>();
     jsonObject.put("Record_Id", String.valueOf(row[0]));
     jsonObject.put("Client_Code", row[1]);
     jsonObject.put("Client_Description", row[2]);

     returnValues.add(jsonObject);
}

これで問題が解決することを願っています

于 2013-09-09T08:47:54.793 に答える