Как преобразовать функцию запроса jsonb_contains в JPA / hibernate Criteriabuilder - PullRequest
0 голосов
/ 23 марта 2020

Привет, ребята, мне нужна помощь в моем случае,

Я хочу преобразовать этот собственный запрос в предикат JPA,

У меня есть такой запрос на postgresql: table user:

INT id -> example data : 1
VARCHAR name -> example data : 'ronaldo'
jsonb categoryId -> example data : [1,2,3,4,5]

и запрос:

SELECT * FROM user where categoryId @> '[3,4,5]'::jsonb

, и я попытался с целым параметром 3, как это, но все еще ошибка:

public Predicate toPredicate(Root<User> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
Expression<Boolean> contains = criteriaBuilder.function("jsonb_contains", Boolean.class,root.get("categoryId"), criteriaBuilder.literal(3));
predicates.add(criteriaBuilder.and(criteriaBuilder.and(),contains));
return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()]));
}

любой может помочь мне, спасибо

...