Я работаю с 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;
}
}