Java 检索实体时发生错误

Java 检索实体时发生错误,java,database,google-app-engine,google-cloud-datastore,jdo,Java,Database,Google App Engine,Google Cloud Datastore,Jdo,从数据存储中检索对象时,出现以下错误: com.google.appengine.datanucleus.query.StreamingQueryResult无法转换为com.relationship.Student` 这是我的代码: javax.jdo.Query q=pm.newQuery(Student.class); //String fname="karthi"; q.setFilter("name == 'karthi'"); @SuppressWarnings("unchecke

从数据存储中检索对象时,出现以下错误:

com.google.appengine.datanucleus.query.StreamingQueryResult无法转换为com.relationship.Student`

这是我的代码:

javax.jdo.Query q=pm.newQuery(Student.class);

//String fname="karthi";
q.setFilter("name == 'karthi'");
@SuppressWarnings("unchecked")
List<Employee> results = (List<Employee>) q.execute("karthi@gmail.com");
Student e = (Student) results;
resp.getWriter().println(e.getName());  

您正在将List类型的对象强制转换为Student类型的对象。除非您显式地为Student创建了一个构造函数,并将列表作为其参数,否则这将不起作用

您添加@SuppressWarningUnchecked的事实告诉我,您的编译器/IDE已经警告过您这一点,您没有试图理解它为什么抱怨,而是决定快速修复方法是通过误用此注释基本忽略问题

现在的问题是不可避免的:你为什么要给学生列出一个清单?这没有任何意义。你的代码真的允许这样做吗?学生如何需要员工名单

我认为您需要在java中做一些更基础的研究,以了解对象是什么,以及对象具有其实例的类型或类意味着什么。对不起,我帮不上什么忙了。继续学习java,希望您能够理解为什么会发生这种错误

此外,在将来,您应该包括所有相关信息,以便用户帮助您。例如,除了完整的堆栈跟踪之外,我通常会要求您发布实例化q的代码,而不仅仅是堆栈跟踪中的一行

祝你好运

ID/Name            college       name
karthi@gmail.com   AMS           karthi