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

时间:2013-08-17 17:17:33

标签: hibernate jpa

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

奇怪的是,hibernate JQL无法识别RIGHT函数。不使用substring是否有一种方法在hibernate中指定NamedQuery中的任何有效数据库函数?我不想让它成为原生查询或CriteriaQuery。

1 个答案:

答案 0 :(得分:3)

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

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

  

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

     

function_arg :: =
  文字|
   state_valued_pa​​th_expression |
  input_parameter |
   scalar_expression

如果是RIGHT功能,它就像:

FUNCTION("RIGHT, "some_string_possibly_path", 3)

使用Hibernate,有一种可能性是扩展方言,如this answer。

中所述