我需要在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中存储此类数据的正确方法是什么?稍后我将需要查询传感器列表,创建传感器表并使用sensor>引用传感器是否更明智?
我认为问题在于您在CQL中声明devide_id
为as text
,但已UUID
在源代码中声明了它,而Spring在尝试插入数据时将其映射为相应的类型。您可以尝试添加@CassandraType(type = Name.TEXT)
到deviceId
声明中吗?您也可以删除@Column
声明-该声明@PrimaryKeyColumn
就足够了。
或者,您可以更改表定义以声明device_id
为UUID
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句