Cassandra Java驱动程序将字段名称转换为小写

时间:2018-09-18 12:22:06

标签: java cassandra-3.0 cassandra-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 个答案:

答案 0 :(得分:0)

在创建JSON时,在此类字段中添加了转义双引号。 例如:"\"catalogName\""

如果使用杰克逊:@JsonProperty("\"catalogName\"")

这对我有用。