Hibernate:如何在Hibernate中查看单列查询输出
您好,我正在使用下面的代码查看Employee表中firstName的列值,但遇到以下错误: 错误:Hibernate:如何在Hibernate中查看单列查询输出,hibernate,Hibernate,您好,我正在使用下面的代码查看Employee表中firstName的列值,但遇到以下错误: 错误: Query sql = session.createQuery("select firstName FROM Employee"); List employees = sql.list(); for (Iterator iterator = employees.iterator(); iterator.hasNext(); ) { E
Query sql = session.createQuery("select firstName FROM Employee");
List employees = sql.list();
for (Iterator iterator = employees.iterator(); iterator.hasNext(); )
{
Employee employee = (Employee)iterator.next();
employee.getFirstName();
System.out.println("First Name" +employee.getFirstName());
}
tx.commit();
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();
}
线程“main”java.lang.ClassCastException中的异常:无法将java.lang.String转换为com.servlet.prgm.Employee
在com.servlet.prgm.ManageEmployee.listEmployees上(ManageEmployee.java:90)
位于com.servlet.prgm.ManageEmployee.main(ManageEmployee.java:33)
代码:
Query sql = session.createQuery("select firstName FROM Employee");
List employees = sql.list();
for (Iterator iterator = employees.iterator(); iterator.hasNext(); )
{
Employee employee = (Employee)iterator.next();
employee.getFirstName();
System.out.println("First Name" +employee.getFirstName());
}
tx.commit();
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();
}
Employee.class
package com.servlet.prgm;
public class Employee {
private int id;
private String firstName;
private String lastName;
private int salary;
public Employee() {}
public Employee(String fname, String lname, int salary) {
this.firstName = fname;
this.lastName = lname;
this.salary = salary;
}
public Employee(String fname){
this.firstName=fname;
}
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName( String first_name ) {
this.firstName = first_name;
}
public String getLastName() {
return lastName;
}
public void setLastName( String last_name ) {
this.lastName = last_name;
}
public int getSalary() {
return salary;
}
public void setSalary( int salary ) {
this.salary = salary;
}
}
抱歉,如果我的格式不正确,我是一个新手,我会很快提高
感谢您的帮助。您选择的是单个标量值,因此Hibernate实际上返回了字符串列表:
try {
Query sql = session.createQuery("select firstName FROM Employee");
List firstNames = sql.list();
for (Iterator iterator = firstNames.iterator(); iterator.hasNext(); )
{
string firstName = (string)iterator.next();
System.out.println("First Name" + firstName);
}
tx.commit();
}catch (HibernateException e) {
if (tx!=null) tx.rollback();
e.printStackTrace();
}finally {
session.close();
}