如何使用JPA Criteria API调用本机MySQL函数(如JSON_CONTAINS)?

时间:2018-08-16 06:45:11

标签: spring spring-data-jpa jpa-criteria

就像下面的代码一样,我想创建一个Spring“规范”来通过动态查询结构查询某些内容。但是表中有一个json类型列,我想让该行包含json列中的指定键和值,因此我想创建一个与SQL相同的条件:

  

选择*从任务WHERE JSON_CONTAINS(内容,值,键)

    if(contentKey != null && contentValue != null){
            ParameterExpression param1 = criteriaBuilder.parameter(String.class);
            ParameterExpression param2 = criteriaBuilder.parameter(String.class);
            ParameterExpression param3 = criteriaBuilder.parameter(String.class);
            TypedQuery q = em.createQuery(criteriaQuery.where(criteriaBuilder.function("JSON_CONTAINS", Boolean.class, param1, param2, param3)));
            q.setParameter(param1, "content");
            q.setParameter(param2, "\"" + contentValue + "\"");
            q.setParameter(param3, "$." + contentKey);
            predicates.add();
        }
        return criteriaBuilder.and(predicates.toArray(new Predicate[0]));

但是我找不到任何设置参数的方法,有什么方法可以解决这个问题?谢谢。

0 个答案:

没有答案