4.6. 关于 HQL 功能
HQL 定义一些可用的标准功能,无论使用的底层数据库是什么。HQL 也可以了解方形图和应用程序中定义的其他功能。
4.6.1. 关于 HQL 标准化功能
无论使用的底层数据库是什么,HQL 中都提供以下功能:
表 4.3. HQL 标准化功能功能描述
BIT_LENGTH
返回二进制数据的长度。
CAST
执行 SQL 广播.cast 目标应命名为要使用的 Hibernate 映射类型。
EXTRACT
根据日期时间值执行 SQL 提取.提取将返回日期/时间值的一部分,如当年。请参见以下简写表格。
SECOND
用于提取第二个的缩写提取表单。
MINUTE
用于提取分钟的缩写提取表单。
HOUR
用于提取小时的缩写提取表单。
DAY
用于提取日期的缩写提取表单.
月
用于提取月份的简短提取表单。
年
用于提取年度的简短提取表单.
STR
转换值作为字符数据的简写形式。
4.6.2. 关于 HQL 非标准化功能
Hibernate 拨号可以注册已知可用于该特定数据库产品的其他功能。它们只有在使用该数据库或拨号时才可用。以数据库可移植性为目标的应用应避免在此类别中使用函数。
应用程序开发人员还可以提供自己的一组功能。这通常代表自定义 SQL 函数或 SQL 片段的别名。此类功能声明通过使用 org.hibernate.cfg.Configuration 的 addSqlFunction 方法进行。
4.6.3. 关于连接操作
HQL 除了支持串联(CONCAT)功能外,还定义了串联运算符。这没有被 Jakarta Persistence 查询语言定义,因此便携式应用应避免使用它。连接运算符取自 SQL 串联运算符(||)。
示例:连接操作示例
Copy to Clipboard
Copied!
Toggle word wrap
Toggle overflow
select 'Mr. ' || c.name.first || ' ' || c.name.last
from Customer c
where c.gender = Gender.MALE
select 'Mr. ' || c.name.first || ' ' || c.name.last
from Customer c
where c.gender = Gender.MALE