当将ParameterExpression与org.springframework.data.jpa.domain.Specification一起使用时,如何将参数传递给函数?

当将ParameterExpression与org.springframework.data.jpa.domain.Specification一起使用时,如何将参数传递给函数?,spring,jpa,spring-data-jpa,criteria-api,Spring,Jpa,Spring Data Jpa,Criteria Api,我使用org.springframework.data.jpa.domain.Specification和JpaSpecificationExecutor在Java中轻松创建带条件的查询,但现在我需要调用一个返回整数值的MySQL DB函数 问题在于,由于我没有使用TypedQuery,因此不清楚如何传递此函数的参数: // cb here is CriteriaBuilder ParameterExpression param = cb.parameter(String.class); Pr

我使用org.springframework.data.jpa.domain.Specification和JpaSpecificationExecutor在Java中轻松创建带条件的查询,但现在我需要调用一个返回整数值的MySQL DB函数

问题在于,由于我没有使用TypedQuery,因此不清楚如何传递此函数的参数:

// cb here is CriteriaBuilder
ParameterExpression param = cb.parameter(String.class);

Predicate predicate = cb.greaterThan(cb.function("A_FUNCTION", 
      Integer.class, param), 0);

Specification spec = cb.and(predicate);

// query is executed like this

return (int) repositoryThatExtendsJpaSpecificationExecutor.count(test);

来自的示例没有帮助。

我认为您真正需要的是一个可以使用创建的文本。完整的示例如下所示

// cb here is CriteriaBuilder
Expression param = cb.literal("Stephen Hawking");

Predicate predicate = cb.greaterThan(cb.function("A_FUNCTION", 
      Integer.class, param), 0);

Specification spec = cb.and(predicate);
如果该值不是来自您的应用程序,您可以使用(m)任何一个