Как проверить, содержится ли строка в объекте Json, используя JPA Criteria API - PullRequest
0 голосов
/ 30 января 2019

Я работаю с Spring Data и пытаюсь создать спецификацию для фильтрации с ним, но когда дело доходит до json, я получаю исключение: - json сохраняется в БД, и я использую конвертер для преобразования его в строку, а когда он возвращается, я используютот же конвертер для преобразования его в объект пользовательского типа, так что я не знаю, как использовать оператор json для преобразования json в строку таким образом, я могу искать в нем с помощью LIKE, это мой фрагмент кода:

public class User implements Specification<Model> {

private FilterCriteria criteria;

public User(FilterCriteria filterCriteria) {
    this.criteria = filterCriteria;
}

@Override
public Predicate toPredicate(Root<Model> root,
                CriteriaQuery<?> query, CriteriaBuilder builder) {

    if (criteria.getOperation().equalsIgnoreCase("contains")) {
        return builder.like(builder.function("json_extract_path_text", String.class,
                        builder.literal(criteria.getKey())), "%" + criteria.getValue() + "%");
    }
    return null;
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...