我的类"Transaction“很复杂,有很多嵌套的对象。有一种方法可以直接从类或现有对象定义映射吗?
注意:我正在对High-Level client使用rest API。如果只有一个低级客户端的解决方案,那也没问题。
谢谢
发布于 2019-01-30 20:35:35
可能无法直接从类或现有对象定义映射。我所做的是将每个对象转换为JSON字符串,并将其存储为一个字符串字段。
代码:
// Using jackson
ObjectMapper mapper = new ObjectMapper();
String transactionAsJson = mapper.writeValueAsString(transaction);
clientService.insertObjectToDb(transactionData.getHash(), transactionAsJson,
TRANSACTION_INDEX_NAME, TRANSACTION_OBJECT_NAME );
public String insertObjectToDb(Hash hash, String objectAsJsonString, String index, String objectName) throws IOException {
IndexResponse indexResponse = null;
try {
IndexRequest request = new IndexRequest(
index,
INDEX_TYPE,
hash.toString());
request.source((jsonBuilder()
.startObject()
.field(objectName, objectAsJsonString)
.endObject()));
indexResponse = restClient.index(request, RequestOptions.DEFAULT);
} catch (Exception e) {
log.error(e.getMessage());
} finally {
return indexResponse.toString();
}
}https://stackoverflow.com/questions/54286768
复制相似问题