2017-06-22 26 views
-3

這是我的代碼,我得到這個問題,用戶是類如果我編譯我使用的Java程序,我得到這個錯誤,?

異常在線程「主要」 java.lang.ClassCastException:java.lang.String中不能轉換爲com.simpleprogrammer.User在COM。 simpleprogrammer.program.main(program.java:32)「

Session session = Hibernate_Utilites.getSessionFactory().openSession(); 
     session.beginTransaction(); 
     org.hibernate.Query query=session.createQuery("select entry from userHistory "); 
     List<User> us=query.list(); 
     for(User du:us) 
     { 
      System.out.println(du.getName()); 
     } 


     session.getTransaction().commit(); 
     session.close(); 
+0

該代碼通過編譯並不意味着是安全的,沒有例外會發生.. –

+0

哪一行是32行?它是'列表我們= query.list()'? – mcslane

+0

請閱讀[mcve] – GhostCat

回答

0

你的Hibernate查詢看起來是從您的userHistory實體選擇單場,entry。所以當你執行List<User> us=query.list();它正試圖施放該查詢的結果放入的列表中10個對象,但它找到的只是entry字符串。

將您的查詢改爲select u from userHistory u之類的內容以獲取整個實體。我假設「userHistory」映射到User類,否則您將有不同的ClassCastException。

但是,如果我們的目標是讓entry代表的實體的每一行的,實際上並不是你User對象上的屬性,那麼你只需要別名userHistory作爲進入,而不是我在上面的例子中u。你沒有提供你的用戶類,所以我只是在這裏作出推定。

+0

org.hibernate.Query query = session.createQuery(「from userHistory」); 列表 us = query.list(); (用戶du:us) { System.out.println(du.getHistory()。toString()); } – RONIN

+0

添加上面的代碼,仍然是同樣的問題 – RONIN

0

//在此

爲org.hibernate.Query查詢解決= session.createQuery( 「從userHistory」); List us = query.list(); (userHistory du:us) { System.out.println(du.getEntry()); }

相關問題