Spring Data Mongodb изменил стратегию для чтения рекурсивных универсальных свойств - PullRequest
0 голосов
/ 21 ноября 2018

Я использую данные о весне с mongodb.Я сделал обновление Spring-data-commons с 1.12.10.RELEASE до 1.13.12.RELEASE.

Класс, которым я владею

@TypeAlias("C")
class C {
  ...
  LinkedHashSet<B> trail;
}

Сторонние классы, не изменяемые

class B extends A<B> {
  String start;
  String end;
  ...
}

class A<T extends A<T>> {
  LinkedHashSet<T> inputs;
}

Пример MongoDB: все внутри trail и inputs одинаковотип объекта B. Он не содержит _id, ни _class

{
  _id: ObjectId("..."),
  _class: "C",
  trail: [{
    start,
    end,
    ...
    inputs: [{
      start,
      end,
      ...
      inputs: [{
        start,
        end,
        ...
        inputs: ...
      }]
    }] 
  }]
}

Поведение при использовании spring-data-commons 1.12.10.RELEASE:

C c = mongoTemplate.findById(id, C.class, "C")
c.trail.iterator.next().inputs -> contains objects of type B.

Поведение послеобновление до spring-data-commons 1.13.12.RELEASE

C c = mongoTemplate.findById(id, C.class, "C")
c.trail.iterator.next().inputs -> contains objects of type A (specific attributes of B were lost)

Вопрос: как мне по-прежнему использовать 1.13.12.RELEASE и восстановить функциональность 1.12.10.RELEASE?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...