Не удается найти десериализатор для неконкретного типа карты [тип карты; класс com.google.common.collect.ImmutableMap

В вашем классе контекста myDB переопределите следующий метод

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
    base.OnModelCreating(modelBuilder);
}

, чтобы он не дублировал имена сгенерированных таблиц.

0
задан Gayan Mettananda 18 January 2019 в 09:32
поделиться

1 ответ

Просто столкнулся с той же проблемой. (похоже, вы используете более новый Джексон, чем я, но все равно должны работать)

Что вам нужно, так это

<dependency>
  <groupId>com.fasterxml.jackson.datatype</groupId>
  <artifactId>jackson-datatype-guava</artifactId>
  <version>your version</version>
</dependency>

Но добавления зависимости недостаточно. Вам также необходимо зарегистрировать класс com.fasterxml.jackson.datatype.guava.GuavaModule.GuavaModule в ObjectMapper.

Я подозреваю, что из вашего примера кода вы используете какую-то инфраструктуру. Я не могу помочь с этим.

Но если я построю ObjectMapper и все программно, это будет выглядеть так:

ObjectMapper mapperWithGuavaSupport = new ObjectMapper().registerModule(new GuavaModule())
MyObjectContainsImmutableMap obj = mapperWithGuavaSupport.readValue("theJsonString", MyObjectContainsImmutableMap.class);

Надеюсь, что это по крайней мере даст вам подсказку в направлении ... Удачи!

0
ответ дан Attila Wind 18 January 2019 в 09:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: