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

  1. 问题的提出

实体类配置如下

@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]
  1. 问题分析

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

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

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

  2. 问题修正

将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;  

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值