У меня есть некоторые проблемы с отображением моей внутренней коллекции.
Элементы могут иметь разные типы контента. Вот мой класс предметов:
@Document(collection = "items")
public class Item{
@Id
private ObjectId id;
private List<? super Content> content;
...
}
Контент - это базовый класс для другого контента для этого элемента.
public class YoutubeVideo implements Content{
private String url;
}
public class Image implements Content{
private String location;
}
...
После сохранения (сохранение без проблем) Элемент с одним изображением и двумя классами YoutubeVideo в коллекции контента, я получаю этот JSON
{ "_id" : { "$oid" : "4e423dcf7f3a0d12265da46c"}
"content" : [
{ "location" : "hdd path"} , { "url" : "url path"} , { "url" : "url path"}
]}
Это не тот JSON, который я ожидал увидеть. И понятно, почему невозможно загрузить и десериализовать этот документ.
java.lang.RuntimeException: Can not map ? super trngl.mongo.domain.content.Content
Как бы вы отобразили этот тип объекта? Я не хочу сериализовать и десериализовывать объекты вручную. Возможно ли это?
Найдены классы конвертеров интереса: преобразователи явного преобразования