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

您的迭代器返回一个字符串。您不能将其转换为对象数组。

字符串中有一个split方法,它通过给定的正则表达式拆分您的字符串并返回String[]包含拆分部分的 a。


由于您没有提供更多信息,我将假设您的行中的数据由空格分隔。

String row = ll.next() // I assume row = "1234 5678 Description_No_Spaces"
String[] data = row.split("\\s+");

String record_Id = data[0];
于 2013-09-07T10:17:33.997 回答
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 回答