如何在从数据库获取值时修复 java.lang.ClassCastException: java.util.ArrayList
how to fix java.lang.ClassCastException: java.util.ArrayList while getting values from DB
我正在处理 spring 应用程序。我正在使用 spring 框架中的 HibernateDaoSupport class 连接到数据库。
下面是我的 java 代码:
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
//imports..
public class MyTableDAOHibernateImpl extends HibernateDaoSupport implements MyTableDAO{
public String getDBValues() throws DataLayerException {
String value = "";
Map<String, String> map = null;
try {
map = (HashMap<String,String>)getHibernateTemplate()
.find("select mt.fname,mt.lname from MyTable as mt where aid= '29983L"' ");
System.out.println("MAP elements : " + map);
if (map != null && !map.isEmpty()) {
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry) it.next();
value = (String) pair.getValue();
System.out.println("name" + value);
}
}
} catch (final DataAccessException dae) {
throw new DataLayerException(dae);
}
return value;
}
以上代码抛出以下异常:
Encountered serious error building result : java.lang.ClassCastException: java.util.ArrayListjava.lang.ClassCastException: java.util.ArrayList
请建议,在我的代码中,getHibernateTemplate() 返回一个 Map<String,String>
。根据我的要求,我需要使用 HashMap 将数据库返回的值存储在键值对中。无法追踪 ClassCastException
。请指教。
getHibernateTemplate().find(...)
returns List<?>
个对象不是 Map<K,V>
您必须更改以在您的代码中列出
List<Object[]> rs = ( List<Object[]> ) getHibernateTemplate().find("select mt.fname,mt.lname from MyTable as mt where aid= '29983L'");
我正在处理 spring 应用程序。我正在使用 spring 框架中的 HibernateDaoSupport class 连接到数据库。
下面是我的 java 代码:
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
//imports..
public class MyTableDAOHibernateImpl extends HibernateDaoSupport implements MyTableDAO{
public String getDBValues() throws DataLayerException {
String value = "";
Map<String, String> map = null;
try {
map = (HashMap<String,String>)getHibernateTemplate()
.find("select mt.fname,mt.lname from MyTable as mt where aid= '29983L"' ");
System.out.println("MAP elements : " + map);
if (map != null && !map.isEmpty()) {
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry) it.next();
value = (String) pair.getValue();
System.out.println("name" + value);
}
}
} catch (final DataAccessException dae) {
throw new DataLayerException(dae);
}
return value;
}
以上代码抛出以下异常:
Encountered serious error building result : java.lang.ClassCastException: java.util.ArrayListjava.lang.ClassCastException: java.util.ArrayList
请建议,在我的代码中,getHibernateTemplate() 返回一个 Map<String,String>
。根据我的要求,我需要使用 HashMap 将数据库返回的值存储在键值对中。无法追踪 ClassCastException
。请指教。
getHibernateTemplate().find(...)
returns List<?>
个对象不是 Map<K,V>
您必须更改以在您的代码中列出
List<Object[]> rs = ( List<Object[]> ) getHibernateTemplate().find("select mt.fname,mt.lname from MyTable as mt where aid= '29983L'");