我正在使用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
时,我可以在字段名称中添加引号。
还有其他解决方法吗?
答案 0 :(得分:0)
在创建JSON时,在此类字段中添加了转义双引号。
例如:"\"catalogName\""
。
如果使用杰克逊:@JsonProperty("\"catalogName\"")
这对我有用。