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

HQL中双连字符(--)的定义、用法及注释兼容性问题咨询

HQL中的单行注释支持情况解析

嘿,这个问题我碰到过好多次了,咱们把它掰扯明白:

首先明确说:HQL是支持--(双连字符)开头的单行注释的,你在编辑器里看到--后的内容变色,其实就是编辑器正确识别了HQL的注释语法,这是没问题的。

那为什么有些资料说HQL不支持注释呢?大概率是指比较早期的Hibernate版本,或者混淆了MySQL的#注释——要注意,HQL并不支持MySQL风格的#单行注释,只认--开头的单行注释。

举个实际的例子,你写的这段代码:

-- fetch students for marks entry 
select s, classHis.classes.id, cd.academicYear 
from Student s 
join s.studentPreviousClassesHistory classHis 
join classHis.classes.classSchemewises classSchemewise

HQL解析器会完全忽略第一行-- fetch students for marks entry的内容,只执行后面的查询语句,完全没问题。

另外补充一下,HQL还支持标准的多行注释/* ... */,比如:

/* 
这是一段多行注释
用来解释下面的查询逻辑
*/
select s.name from Student s where s.age > 18

总结一下:

  • HQL支持--单行注释(行内或行首都可以)
  • HQL不支持#开头的单行注释
  • HQL支持/* ... */多行注释

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:10:15