【发布时间】:2014-07-11 03:36:18
【问题描述】:
这是一个测试程序。数据库中的表是学生,以 id 和 name 为列。 POJO 类是 Student,以 id 和 name 作为属性
servlet1 中使用的 HQL 查询是:
List<Student> l = ses.createQuery("select s.id, s.name from Student s").list();
out.println("Database students are as follows:<br/>");
Iterator it= l.iterator();
while(it.hasNext())
{
Object o[]= (Object[]) it.next();
out.println("Student id is :"+o[0]);
out.println("<br/>");
out.println("Student name is :"+o[1]);
out.println("<br/>");
}
servlet2 中的 HQL 查询是:
List<Student> l=ses.createQuery("from Student").list();
out.println("Database students are as follows:<br/>");
Iterator it= l.iterator();
while(it.hasNext())
{
Student s= (Student) it.next();
out.println("Student id is :"+s.getId());
out.println("<br/>");
out.println("Student name is :"+s.getName());
out.println("<br/>");
}
在 servlet1 中,如果我使用 Student 对象而不是 Object 类对象,为什么不会从数据库中检索数据?反之,一切正常。
在 sevlet2 中,如果我使用 Object 类对象而不是 Student 对象,为什么不会从数据库中检索数据?反之,一切正常。
【问题讨论】: