Cassandra Java 将字段名称转换为小写的驱动程序
Cassandra Java Driver converting field names to lower case
我正在使用 cassandra-driver-core 版本 3.5.1
我在 cassandra 中有一个 table。 table 中的所有字段均采用驼峰式大小写并用双引号引起来。这些字段需要采用驼峰式大小写,因为我的 solr 模式采用驼峰式大小写,而我们有大约 80-120 个字段。
但是当我在这个 table 中插入我的 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
在我的 table 字段名称是 catalogName
我应该怎么做,驱动程序才不会小写我的字段?
更新:
我知道我可以创建如下查询:
QueryBuilder.insertInto(keySpace, table).values(fieldNameList, fieldValueList)
创建时 fieldNameList
我可以在字段名称中添加引号。
还有其他解决方案吗?
在创建 JSON 时向此类字段添加了转义双引号。
示例:"\"catalogName\""
.
如果使用杰克逊:@JsonProperty("\"catalogName\"")
这对我有用。
我正在使用 cassandra-driver-core 版本 3.5.1
我在 cassandra 中有一个 table。 table 中的所有字段均采用驼峰式大小写并用双引号引起来。这些字段需要采用驼峰式大小写,因为我的 solr 模式采用驼峰式大小写,而我们有大约 80-120 个字段。
但是当我在这个 table 中插入我的 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
在我的 table 字段名称是 catalogName
我应该怎么做,驱动程序才不会小写我的字段?
更新:
我知道我可以创建如下查询:
QueryBuilder.insertInto(keySpace, table).values(fieldNameList, fieldValueList)
创建时 fieldNameList
我可以在字段名称中添加引号。
还有其他解决方案吗?
在创建 JSON 时向此类字段添加了转义双引号。
示例:"\"catalogName\""
.
如果使用杰克逊:@JsonProperty("\"catalogName\"")
这对我有用。