Ответ Couchbase не отображается на сущность - PullRequest
0 голосов
/ 25 января 2019

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


}
...