HQL 标识符无效

这是报错

因为刚学HIbernate,很多小问题其实挺折磨人的

 这是代码(我根据网上搜索的答案还有自己的判断测试,感觉应该可能是字段没有" "的问题)

 Configuration configuration = new Configuration().configure();
        SessionFactory sessionFactory = configuration.buildSessionFactory();
        Session session = sessionFactory.openSession();
        String HQL = "from StudentCourse ";
        Query query = session.createQuery(HQL);
        List<StudentCourse> list = query.list();
        for (StudentCourse o : list) {
            System.out.println(o);
        }
        session.close();

解决过程:

搞了几个小时,太痛苦了,主要原因还是因为不熟悉数据库,使用Navicat创建表的时候是默认在字段上面加了双引号,所以查询的时候字段必须带双引号,但是如果字段用的大写就不会。(特别痛苦,所以以后建表最好用sql语句)

更改前:

    @Id
    @Column(name = "id")
    private Integer id;
    @Column(name = "course")
    private String course;
    @Column(name = "grade")
    private Integer grade;
    @Column(name = "STUDENT_USER_ID")
    private Integer userId;

更改后:因为userId 的字段是大写,所以不用加双引号

    @Id
    @Column(name = "\"id\"")
    private Integer id;
    @Column(name = "\"course\"")
    private String course;
    @Column(name = "\"grade\"")
    private Integer grade;
    @Column(name = "STUDENT_USER_ID")
    private Integer userId;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值