一、报错:org.hibernate.hql.internal.ast.QuerySyntaxException: XXX is not mapped [FROM XXX WHERE owner = ?1]
具体报错:
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: student is not mapped [FROM student WHERE owner = ?1]
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: qrsfj is not mapped [FROM qrsfj WHERE owner = ?1]
二、原因:hibernate的hql查询语句是面向对象的,而不是面向数据库(即它直接操作的是实体类),所以在hql语句中要查询的实体类名,和查询结果要封装成的对象名要一致。
> 错误示例:
String hql = "FROM student WHERE name= ?1";
List<Student > students = getDao().findAll(Student.class, hql, "小明");
> 正确示例:
String hql = "FROM Student WHERE name= ?1";
List<Student > students = getDao().findAll(Student.class, hql, "小明");
三个"Student"要一样,这里的“Student”,是类,而不是数据库表名,特别要注意,区!分!大!小!写!