这是报错
因为刚学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;
在学习Hibernate过程中遇到查询错误,问题出在数据库字段名称使用了双引号。当使用Navicat创建表时,默认字段名加了双引号,导致查询时必须匹配双引号。解决方法是检查实体类中的字段映射,对于大小写的敏感性进行调整,例如将`STUDENT_USER_ID`字段保持大写无需加双引号。

610

被折叠的 条评论
为什么被折叠?



