当将ParameterExpression与org.springframework.data.jpa.domain.Specification一起使用时,如何将参数传递给函数?
我使用org.springframework.data.jpa.domain.Specification和JpaSpecificationExecutor在Java中轻松创建带条件的查询,但现在我需要调用一个返回整数值的MySQL DB函数 问题在于,由于我没有使用TypedQuery,因此不清楚如何传递此函数的参数:当将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
// 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)任何一个