2017-06-22 68 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()); }

相关问题