Spring mongodb,将文档保存两次:保存在自己的集合中,并作为其他集合的嵌入

Spring mongodb,将文档保存两次:保存在自己的集合中,并作为其他集合的嵌入,spring,mongodb,Spring,Mongodb,我有两个收藏:Foo和Bar。最后一个和Foo有关系。我想在一个集合中保存Foo,在另一个集合中保存Bar,但要使用嵌入的Foo文档,而不仅仅是使用DBRef @文档 福{ 字符串标题; } @文件 酒吧{ 字符串标题; 列出食物; } 预期收款: Foo: [{ObjectId(“5ddad4b73679ca0ecbf3cd4b”),标题:“Hello Foo 1”,_class:com.play.spring.mongo.Foo}, {ObjectId(“34acd4b73679ca0ec

我有两个收藏:Foo和Bar。最后一个和Foo有关系。我想在一个集合中保存Foo,在另一个集合中保存Bar,但要使用嵌入的Foo文档,而不仅仅是使用DBRef

@文档
福{
字符串标题;
}
@文件
酒吧{
字符串标题;
列出食物;
}
预期收款:

Foo:
[{ObjectId(“5ddad4b73679ca0ecbf3cd4b”),标题:“Hello Foo 1”,_class:com.play.spring.mongo.Foo},
{ObjectId(“34acd4b73679ca0ecbf3cd4b”),标题:“Hello Foo 2”,_class:com.play.spring.mongo.Foo}]
酒吧:
[{ObjectId(“asdd4b73679ca0ecbf3cd4b”),
标题:“你好,酒吧1”
福斯:[
{ObjectId(“5ddad4b73679ca0ecbf3cd4b”),标题:“Hello Foo 1”,_class:com.play.spring.mongo.Foo},
{ObjectId(“34acd4b73679ca0ecbf3cd4b”),标题:“Hello Foo 2”,_class:com.play.spring.mongo.Foo}
],
_类:com.play.spring.mongo.Bar}]
但当我保存Bar文档时,会出现以下错误:
java.lang.IllegalArgumentException:java.util.ArrayList类型的目标bean不是持久实体(com.play.spring.mongo.Foo)的类型java.util.ArrayList


若我从Foo中删除@Document,嵌入的文档在Bar上工作,若@DBRef被添加到Bar中的foos,那个么它将创建从Bar到Foo的引用。但是有了两个注解@Document,它就不起作用了。

我创建了一个抽象类Roo,并从中继承了Foo。此外,我更改了工具栏,使其包含一个Roo列表

@JsonDeserialize(as=Exercise.class)
abstract class Roo {
}

@Document
Foo extends Roo {
   String title;
}

@Document
Bar {
   String title;
   List<Roo> foos;
}
@JsonDeserialize(as=Exercise.class)
抽象类Roo{
}
@文件
富扩展Roo{
字符串标题;
}
@文件
酒吧{
字符串标题;
列出食物;
}