如何在JPA / Hibernate NamedQuery中指定数据库函数?
奇怪的是,hibernate JQL无法识别RIGHT函数。不使用substring是否有一种方法在hibernate中指定NamedQuery中的任何有效数据库函数?我不想让它成为原生查询或CriteriaQuery。
答案 0 :(得分:3)
JPQL之前的JPA 2.1不支持直接使用数据库函数(除了因使用JPQL函数而调用的函数)。
根据JPA 2.1规范,函数调用如下:
function_invocation :: = FUNCTION(function_name {,function_arg} *)
function_arg :: =
文字|
state_valued_path_expression |
input_parameter |
scalar_expression
如果是RIGHT功能,它就像:
FUNCTION("RIGHT, "some_string_possibly_path", 3)
使用Hibernate,有一种可能性是扩展方言,如this answer。
中所述