我需要在cassandra中存储地图列表。那可能吗? 这是我的数据的json表示:
{
"deviceId" : "261e92b8-91af-40da-8ba4-c39d821472ec",
"sensors": [
{
"fieldSensorId": "sensorID",
"name": "sensorName",
"location": "sensor location",
"unit": "value units",
"notes": "notes"
},
{
"fieldSensorId": "sensorID 2",
"name": "sensorName 2",
"location": "sensor location 2",
"unit": "value units",
"notes": "notes"
}
]
}
CQL:
CREATE TABLE device_sensors (
device_id text,
sensors list<frozen <map<text,text>>>,
time timeuuid,
PRIMARY KEY (device_id)
)
仍然无法插入任何数据。在cassandra中存储这些数据的正确方法是什么?稍后我将需要查询传感器列表 创建传感器表并使用传感器可能更明智吗?参考传感器?
答案 0 :(得分:1)
我认为问题是您在CQL中将devide_id
声明为text
,但您在源代码中声明了它UUID
,并且在尝试时Spring将其映射到相应的类型插入数据。您可以尝试将@CassandraType(type = Name.TEXT)
添加到deviceId
声明中吗?您还可以删除@Column
声明 - @PrimaryKeyColumn
就足够了。
或者您可以更改表格定义,将device_id
声明为UUID
。