У меня есть документ на диване, как показано ниже.Всякий раз, когда я выбираю свой документ и сопоставляю его с моделью сущностей, он отображается неправильно.Я использую Immutable для моей модели сущности.Я хочу, чтобы мой документ возвращал countryConfigMap.Это дает мне нулевое значение countryConfigMap, хотя я получаю правильное значение, если получаю только CountryConfig. Похоже, Джексон не может сопоставить мой документ с моей картой модели сущностей.
CouchbaseOperationResult<CountryConfigMap> result = couchbaseDAO.getByKey(key);
OperationStatus.StatusCode status = result.getStatusCode();
Результат:
CountryConfigMap{countryConfig={}}
Документ Couchbase:
{
"USD": {
"functionalCurrency": "sfd",
"dataCenter": "safds",
"licenseType": "asdsf"
},
"EUR": {
"functionalCurrency": "sfd",
"dataCenter": "safds",
"licenseType": "asdsf"
}
}
CountryConfig.java
@Value.Immutable
@JsonSerialize
@JsonDeserialize(as = ImmutableCountryConfig.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
public interface CountryConfig {
/**
* Functional currency code for country
*
* @return
*/
@Value.Parameter
String getFunctionalCurrency();
/**
*
* data center for country
*
* @return
*/
@Value.Parameter
String getDataCenter();
/**
*
* license type for country
*
*/
@Value.Parameter
String getLicenseType();
}
CountryConfigMap.java
@Value.Immutable
@JsonSerialize
@JsonDeserialize(as = ImmutableCountryConfigMap.class)
@JsonInclude(JsonInclude.Include.NON_NULL)
public abstract class CountryConfigMap {
/**
*
* Country Config Map
*
* @return
*/
@Nonnull
@Value.Parameter
abstract Map<String, CountryConfig> getCountryConfig();
}