当我使用HQL select子句时出现以下错误.student是mysql表。 的错误: Hibernate:从student studentcla0_中选择studentcla0_.vStudentName作为col_0_0_ java.lang.String中
以下是代码:
public static void querySubject(Session session)
{
String sql_query="select stud.strStudentName from StudentClass as stud";
Query query1=session.createQuery(sql_query);
for(Iterator it=query1.iterate();it.hasNext();)
{
Object[] row = (Object[]) it.next();
System.out.println("Subject Name:"+row[0]);
}
return;
}
答案 0 :(得分:0)
是hql还是sql。如果sql尝试:
session.createSQLQuery(...)
答案 1 :(得分:0)
只是为了确认 - 你的数据库中有一个名为“student”的表,它有一个名为“vStudentName”的列,它是某种类型的字符串类型?映射已完成,并导致转换为此SQL:
select studentcla0_.vStudentName as col_0_0_
from student studentcla0_
这是直接对您的数据库运行,还是在那里出错?
答案 2 :(得分:0)
当您选择单个值(无论是属性还是实体)时,Hibernate将直接返回该值;它将不包装在Object数组中。详见here。所以你的代码应该是:
for(Iterator it=query1.iterate(); it.hasNext(); ) {
System.out.println("Subject Name:"+ it.next());
}