小编Tim*_*Tim的帖子

如何使用 Spring Data(MongoDB) 映射泛型集合?

我在映射我的内部收藏时遇到了一些问题。项目可以有不同的内容类型。这是我的项目类:

@Document(collection = "items")
public class Item{
@Id
private ObjectId id;   
private List<? super Content> content;
...
}
Run Code Online (Sandbox Code Playgroud)

Content 是这个 Item 不同内容的基类。

public class YoutubeVideo implements Content{
     private String url;
}

public class Image implements Content{
     private String location;
}
...
Run Code Online (Sandbox Code Playgroud)

在内容集合中保存(保存完成没有问题)带有一个图像和两个 YoutubeVideo 类的项目后,我得到了这个 JSON

{ "_id" : { "$oid" : "4e423dcf7f3a0d12265da46c"} 
"content" : [ 
{ "location" : "hdd path"} , { "url" : "url path"} , { "url" : "url path"}
]}
Run Code Online (Sandbox Code Playgroud)

这不是我希望看到的 JSON。并且可以理解为什么无法加载和反序列化此文档。

java.lang.RuntimeException: Can not map ? …
Run Code Online (Sandbox Code Playgroud)

java collections mongodb spring-data

3
推荐指数
2
解决办法
1万
查看次数

标签 统计

collections ×1

java ×1

mongodb ×1

spring-data ×1