3

如何在 JPA/Hibernate NamedQuery 中指定数据库函数?

奇怪的是,休眠 JQL 不能识别 RIGHT 函数。在不使用子字符串的情况下,休眠中有没有办法在 NamedQuery 中指定任何有效的数据库函数?我不想让它成为原生查询或 CriteriaQuery。

4

1 回答 1

3

JPQL 之前的 JPA 2.1 不支持直接使用数据库函数(除了那些因为使用 JPQL 函数而被调用的函数)。

根据 JPA 2.1 规范,函数调用如下:

function_invocation::= FUNCTION(function_name {, function_arg}*)

函数参数 ::=
文字 |
state_valued_pa​​th_expression |
输入参数 |
标量表达式

在 RIGHT 函数的情况下,它类似于:

FUNCTION("RIGHT, "some_string_possibly_path", 3)

使用 Hibernate 的一种可能性是扩展方言,如答案中所述。

于 2013-08-18T19:09:07.810 回答