java.lang.ClassCastException:sametype不能强制转换为sametype

java.lang.ClassCastException:sametype不能强制转换为sametype,java,entitymanager,Java,Entitymanager,非常奇怪的例外 ex = (java.lang.ClassCastException) java.lang.ClassCastException: Entities.service.Chatuser cannot be cast to Entities.service.Chatuser 我的代码 Query q = em.createQuery("SELECT u FROM Chatuser u"); List<Chatuser> list =

非常奇怪的例外

   ex = (java.lang.ClassCastException) java.lang.ClassCastException: Entities.service.Chatuser cannot be cast to Entities.service.Chatuser
我的代码

 Query q = em.createQuery("SELECT  u FROM Chatuser u");

            List<Chatuser> list = (List<Chatuser>) q.getResultList();
            for (int i = 0; i < list.size(); i++) {
                Object aa = list.get(i);
                Chatuser chatuser = (Chatuser)aa;

有什么问题

这是因为泛型

List<Chatuser> list = 

这篇文章可能也回答了你的问题


冲突的类加载器可能有问题

请尝试以下操作:

Query q = em.createQuery("SELECT  u FROM Chatuser u", Chatuser.class);

List<Chatuser> list = q.getResultList();

for (Chatuser chatuser : list) {
    ....
    chatuser.doSomething();
    ...
}
Query q=em.createQuery(“从Chatuser u中选择u”,Chatuser.class);
List List=q.getResultList();
用于(聊天用户聊天用户:列表){
....
chatuser.doSomething();
...
}
如果已经在createQuery方法上设置了目标类,则可以避免向下转换。 如果它不工作,请通过更多信息,(Chatuser.java)JPA(Hibernate)版本等)


Cheers Jens

试试这个对象aa=(对象)列表;如果重新部署,请尝试重新启动服务器。我在重新部署一个应用程序时,在jBoss中也遇到过同样的问题。你确定createQuery能正常工作吗?你能发布stacktrace吗?我重新启动了电脑,它工作了“保留在内存中的类的旧版本导致ClassCastException”
Query q = em.createQuery("SELECT  u FROM Chatuser u", Chatuser.class);

List<Chatuser> list = q.getResultList();

for (Chatuser chatuser : list) {
    ....
    chatuser.doSomething();
    ...
}