2016-10-10 69 views
-1

我正在處理spring應用程序。我在Spring框架中使用HibernateDaoSupport類連接到數據庫。如何修復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 - 請您詳細說明一下。你認爲地圖是什麼意思?我創建的地圖對象的類型是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

相關問題