Cassandra Java Driver преобразует имена полей в нижний регистр

Я использую Cassandra-Driver-Core версии 3.5.1

У меня есть стол в Кассандре. Все поля в таблице имеют верблюжий корпус и созданы в двойных кавычках. Эти поля должны быть в случае верблюда, так как моя схема solr имеет верблюжий корпус, и у нас есть около 80-120 полей.

Но когда я вставляю свои документы json в эту таблицу, используя следующий код:

//jsonData is json document in String 
Insert insertQuery = QueryBuilder.insertInto(keySpace, table).json(jsonData);
ResultSet resultSet = session.execute(insertQuery.toString());

Сгенерированный запрос вставки:

INSERT INTO asda_search.GROCERIES JSON '{"catalogName":"some data", .....);

Драйвер cassandra преобразует поле в операторе вставки в нижний регистр, что приводит к исключению ниже:

Caused by: com.datastax.driver.core.exceptions.InvalidQueryException: JSON values map contains unrecognized column: catalogname

В моей таблице имя поля catalogName

Что мне делать, чтобы драйвер не прописывал мои поля в нижнем регистре?

Обновить:

Я знаю, что могу создать запрос, как показано ниже:

QueryBuilder.insertInto(keySpace, table).values(fieldNameList, fieldValueList)

при создании fieldNameList Я могу добавить кавычки к именам полей.

Любое другое решение?

1 ответ

При создании JSON в такие поля добавлялись экранированные двойные кавычки. Пример: "\"catalogName\"".

При использовании Джексона: @JsonProperty("\"catalogName\"")

Это сработало для меня.

Другие вопросы по тегам