Хранение и поиск по JSON с неизвестными ключами в Postgres
Есть таблица settings в которой есть поле payload и не известно сколько ключей и какими они будут, известно только то что придет корректный JSON в котором допустим только 1 уровень, тоесть все значения ключенй это примитивы и строки, вложенных объектов нет.
{
"a": 1,
"b": 0.21,
"c": "text"
}
Не один ключ не может содержать объект в духе "d": {...}
CREATE TABLE IF NOT EXISTS settings
(
id BIGSERIAL PRIMARY KEY,
payload TEXT NOT NULL,
);
Сейчас используется тип TEXT, но необходимо реализовать поиск по контенту payload и не просто типа LIKE как в обычной строке, а по ключам как в объекте с потдержкой бызовых SQL запросов в духе:
WHERE a > 0 AND b <= 1.4.
Возможно для этого подходит JSONB но он тоже как оказалось требует точного описания полей на стороне Hibernate в духе этого туториала.
Как можно реализовать подобный функционал на Postgres так что-бы это было совместимо с Spring Data?