You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hibernate中执行含*的SQL语句时遭遇QuerySyntaxException求助

解决QuerySyntaxException异常的可行思路

问题重现

执行这段代码时触发QuerySyntaxException:

String sqlQuery = "SELECT * FROM t_student01";

IDE内代码显示如下:
IDE中代码显示

排查&解决方向

  • 先验证SQL本身有效性:把SELECT * FROM t_student01直接复制到数据库客户端(如MySQL Workbench、Navicat)执行,若报错,说明是表名不存在、拼写错误或数据库权限问题,先解决这类基础问题。
  • 检查ORM框架表映射:如果使用JPA/Hibernate等ORM框架:
    • 确认实体类上的@Table(name = "t_student01")注解是否正确,有没有写错表名(比如漏写数字、大小写不匹配)。
    • 核对框架配置,是否存在自动修改表名的规则(比如配置了表名前缀/后缀,或hibernate.hbm2ddl.auto未正确生成目标表)。
  • 处理表名转义:部分数据库对含数字的表名敏感,尝试给表名加转义符:MySQL用反引号SELECT * FROM t_student01``,Oracle用双引号SELECT * FROM "t_student01"。
  • 区分原生SQL与HQL:如果用的是HQL而非原生SQL,不能直接写数据库表名,要改用实体类名,比如实体类名为Student,需写成FROM Student或SELECT s FROM Student s。
  • 核对数据库连接:确认应用连接的是正确的数据库实例,避免因连错库导致找不到t_student01表。

内容的提问来源于stack exchange,提问作者Daffy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:46:00