2016-10-10 1 views
-1

Я работаю над весенним приложением. Я подключаюсь к базе данных, используя класс HibernateDaoSupport в Spring Framework.Как исправить java.lang.ClassCastException: java.util.ArrayList при получении значений из базы данных

Ниже мой 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. Пожалуйста посоветуй.

+0

карты является списком ... Преобразовать этот список на карту, что вы хотите. – Snickers3192

+0

@ Snickers3192 - Не могли бы вы рассказать подробнее. Что вы подразумеваете под картой - это список? Объект map, который я создал, имеет тип java.util.Map . – user222

+0

Как я могу разработать, что вы называете карточкой типа Map , на самом деле является списком , что я и сказал. – Snickers3192

ответ

3

getHibernateTemplate().find(...) возвращается List<?> объектов не Map<K,V>

Вы должны изменить в список в вашем коде

List<Object[]> rs = (List<Object[]>) getHibernateTemplate().find("select mt.fname,mt.lname from MyTable as mt where aid= '29983L'"); 
+0

Спасибо, поэтому вы имеете в виду из списка Мне нужно вручную разместить объект в HashMap user222

+0

Да, вам нужно преобразовать – Saravana

Смежные вопросы