在Cassandra DB中,我的列名称为custom_extensions
,其中可以包含List<AppEncoded>
,其中AppEncoded是UDT
。 UDT
具有以下字段
type -> TEXT
code -> TEXT
value - TEXT
在将数据保存到DB的同时,value
字段可以将输入作为对象。
CurrencyTO:
field -> amount
field -> Symbol
field -> formattedAmount
将列值保存在数据库中的实现如下:
JacksonJsonCodec<CurrencyTO> jacksonJsonCodec = new JacksonJsonCodec<>(CurrencyTO.class);
appEncodedValue.setValue(jacksonJsonCodec.format(CurrencyTO.getValue()));
CurrencyTo正在扩展具有以下属性的TranserObject。 如果我在数据库中看到以下结果:
"value": "'{\"serviceResult\":{\"messagesResult\":[]},\"attributeNames\":[\"amount\",\"isoCode\",\"symbol\",\"decimalValue\",\"formattedAmount\"],\"metadata\":null,\"this\":null,\"amount\":\"45\",\"isoCode\":\"USD\",\"symbol\":\"$\",\"decimalValue\":2.0,\"formattedAmount\":null}'"
结果中还添加了serviceResult
,messageResult
,metadata
和一些\
字符。
预期结果应与数据库中的类似
"value": {
"amount": 90,
"Symbol": "$",
"formattedAmount" : "90.00"
}
我遵循的实现参考是: custom_codecs