Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Mongodb-插入嵌套文档?_Java_Spring_Mongodb_Spring Data Mongodb - Fatal编程技术网

Java Spring Mongodb-插入嵌套文档?

Java Spring Mongodb-插入嵌套文档?,java,spring,mongodb,spring-data-mongodb,Java,Spring,Mongodb,Spring Data Mongodb,我有以下课程 @Document public class PersonWrapper { @Id private ObjectId _Id; @DBRef private Person person // Getters and setters removed for brevity. } public class Person { @Id private ObjectId _Id; private String nam

我有以下课程

@Document
public class PersonWrapper {

    @Id
    private ObjectId _Id;

    @DBRef
    private Person person

    // Getters and setters removed for brevity.
}

public class Person
{
    @Id
    private ObjectId _Id;

    private String name;

    // Getters and setters removed for brevity.
}
我有下面的MongoReposityClass

public interface PersonWrapperRepository extends MongoRepository<Person, String> {
    Person findByPerson_name(String name);
}
现在,虽然这将影响工作-我发现我需要先插入“Person”,然后将返回的对象添加到PersonWrapper,然后再进行另一次插入

这很好,而且我确信我可以编写一些流控制来捕捉错误,并在出现故障时表现出明智的行为

然而,每个人都知道这将是低效的,因为它是两个电话保存。必须有一种方法可以基本上创建嵌套对象,在ParentWrapper上进行插入,如果Person实例不存在,让mongo插入它,对吗


我已经被谷歌搜索过了,但在获取我想知道的信息时遇到了一些问题。

这是spring data mongodb无法做到的。该框架缺乏处理嵌套对象的能力,而您将其放入try-catch的方式几乎是唯一的方法。

有人能帮我吗?也许这个框架还不能做到这一点?我还没有在网上找到一个答案。真的吗?但是如果这样的事情做不到,那么它就完全否定了坚持的意义。到目前为止,MongoDb一直让我们失望。
repo.insert(personWrapperInstance);