[SSH]HQL语句错误QuerySyntaxException: Student is not mapped [from Student stu order by stu.userna

    xiaoxiao2021-12-14  22

    问题的提出

    实体类配置如下

    @Entity(name="student") public class Student { // 声明变量,学号,姓名,密码; @Id @Column(name="username") private String username; @Column(name="password",length=255) private String password; @Column(name="age",length=11) private int age; @Column(name="birthday",length=32) private Date birthday; ......

    在项目加载过程中,发生了以下如题错误

    .internal.ast.QuerySyntaxException: Student is not mapped [from Student stu order by stu.username]

    问题分析

    在项目代码中,的确定义了Entity的class,为student,经过观察分析,发现在JPA中是利用@Entity来定义标识的, 故推理可知如下信息:

    @Entity标识的实体类是JPA中进行管理和映射的Entity, 其在JPA中默认的名字为class name首字母小写。比如AccountEntity,其默认的实体名称为accountEntity.

    相同的类名在JPA中,默认的实体名称相同,故无法正确识别,这个就是问题的来源。

    问题修正

    将daoimpl包中的from Student stu改为了student,因为如果你自己设置了entity的名字,那么就不采用默认类名为名字了

    @Override public List<Student> findAllUsers() { // TODO Auto-generated method stub String hql = "from student stu"; //注意这里的student要和实体类中的entity配置名字相同,若那边entity没有写name则默认为类名 List<Student> list = (List<Student>) this.getHibernateTemplate().find(hql); return list; }
    转载请注明原文地址: https://ju.6miu.com/read-962894.html

    最新回复(0)