Я получил решение для моей проблемы.Elasticsearch ожидает объект json со структурой, которая есть у меня в первом примере.Поэтому я добавил @JsonUnwrapped
к полю со значением префикса, поэтому мой класс Company выглядит следующим образом:
class Company {
@JsonUnwrapped(prefix = "postal")
private Address postalAddress;
@JsonUnwrapped(prefix = "visitor")
private Address visitorAddress;
@JsonUnwrapped(prefix = "Establishment")
private Address establishmentAddress;
}
И результат будет:
{
"postalStreetName":"",
"postalHouseNumer":"",
"postalHouseLetter":"",
"postalHouseNumberAddition":"",
"postalCity":"",
"postalCountry":"",
"visitorStreetName":"",
"visitorHouseNumer":"",
"visitorHouseLetter":"",
"visitorHouseNumberAddition":"",
"visitorCity":"",
"visitorCountry":"",
"establishmentStreetName":"",
"establishmentHouseNumer":"",
"establishmentHouseLetter":"",
"establishmentHouseNumberAddition":"",
"establishmentCity":"",
"establishmentCountry":""
}
Так что мне не нужно каким-то волшебным образом создавать эти pojo, потому что Джексон может создавать нужные мне файлы json.