Java 弹簧数据+;在Mongo中使用id作为属性列出嵌套的复杂类型

Java 弹簧数据+;在Mongo中使用id作为属性列出嵌套的复杂类型,java,spring,mongodb,Java,Spring,Mongodb,如何在Spring Data+Mongo中处理复杂类型 比如: 如何构建此对象以供服务器端使用 我想使用addressid,但当我需要在某些方法中使用地址时,我不知道如何继续 例如: void doWithPerson(Person person){ System.out.println(person.getAdress());//this doesn't exist with adressId } 编辑: 我希望mongo对象为: { id: 1 name: 'Test'

如何在Spring Data+Mongo中处理复杂类型

比如:

如何构建此对象以供服务器端使用

我想使用addressid,但当我需要在某些方法中使用地址时,我不知道如何继续

例如:

void doWithPerson(Person person){

    System.out.println(person.getAdress());//this doesn't exist with adressId
}
编辑:

我希望mongo对象为:

{
  id: 1
  name: 'Test'
  addressId: 1//not the complext object
}
以及在收件时:

{
  id: 1
  address: 'Some info'
}

您可以使用
@DBRef
注释将另一个对象的引用存储到类对象中,例如:

@DBRef(lazy = true)
Address address;
通过这种方式,您可以找到具有特定地址id的
人员
。您还可以使用
mongo存储库
地址
类独立检索
地址
对象


是文档。

但是,我的mongo对象将是
{id:'1',name:'name',address:'1'}
{id:'1',name:'name',address:{//object}
使用
@DBef
,您的mongo对象将是
{id:1,地址:{$ref address,$id:address}
对于集合是否相同?有办法清理这个{$ref…对象吗?你不必担心,spring数据会帮你处理的。是的,它已经很干净了,因为它只存储id引用,而不是整个对象。
@DBRef(lazy = true)
Address address;