Spring 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 name;
// Getters and setters removed for brevity.
}
而且 - 我有以下MongoReposityClass ...
public interface PersonWrapperRepository extends MongoRepository<Person, String> {
Person findByPerson_name(String name);
}
显示repository类可能是毫无意义的 - 但基本上我在这里做的是创建一个实例然后创建一个PersonWrapper对象,然后执行如下操作:
repo.insert(personWrapperInstance);
现在,虽然这将实际上起作用 - 我发现我需要先插入“Person”,然后将返回的对象添加到PersonWrapper,然后再插入一个。
这很好,我确信我可以编写一些流控制来捕捉错误,并在出现问题时采取合理的行为。
然而 - 每个人都知道这样会效率低下,因为这是两次保存。 GOT是我可以基本创建嵌套对象的一种方式,并且在ParentWrapper上执行插入,并且如果mongo不存在,mongo会插入Person实例,对吗?
我一直在Google上搜索,但遇到了一些问题,得到我想知道的。
答
这不能用spring-data-mongodb完成。该框架缺乏使用嵌套对象的能力,而将其放入try catch中的方式几乎是实现它的唯一方法。
+0
真的吗?但是,如果这样的事情不能完成,那么它否定了坚持一切的整个观点。 MongoDb从一开始到现在一直让我们失望。 – IWishIWasABarista
有人可以帮我吗?也许框架还没有能力呢?我还没有在网上找到答案。 – IWishIWasABarista