0

When I used a SQL query in Hibernate (HQL) I got following error:

student is not mapped. [select stud.vStudentName from student as stud]

Here is table name in MySQL and following is function of the select query.

public static void querySubject(Session session) 
{
    String sql_query="select stud.vStudentName from student 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;
}
4

3 回答 3

0

HQL 不是 SQL。这是映射到 SQL 的东西。您应该在 HQL 中使用的名称不是数据库中表和列的名称。您应该在 HQL 中使用的名称是Java 代码库中的属性的名称。

因此,除非您的 Java 类也称为“student”,否则您应该将“student”更改为映射到“student”表的 Java 类的实际名称。

(如果您希望能够使用文字 SQL,我认为 createSQLQuery 是您正在寻找的方法。但您可能没有 - 不需要为这么简单的事情使用 SQL,您也可以坚持使用更接近您的 Java 代码的东西)

于 2013-07-20T00:21:05.823 回答
0

这可能不是 HQL 问题,除非您的班级实际上被命名为 Student,例如 - HQL 区分大小写。更有可能是映射问题。检查您是否可以通过 Session.get 方法使用您的学生课程。如果是这样,那只是您没有正确映射它。

于 2009-07-15T10:28:45.293 回答
0

在 HQL Java 类中区分大小写,因此请尝试

String sql_query="select stud.vStudentName from Student as stud";
于 2009-07-15T10:29:45.790 回答