Вероятно, нет способа определить отображение прямо из класса или существующего объекта.
Что я сделал, так это преобразовал каждый объект в строку 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();
}
}