Spring Data + Mongo列表使用id作为mongo中的属性嵌套复杂类型

时间:2017-02-14 22:00:40

标签: java spring mongodb

如何在Spring Data + Mongo中使用复杂类型?

像:

class Person {

    @Id
    String id;
    String name;
    //What can I do?
    Address address
    //OR
    String adressId;
}

如何为服务器端使用构建此对象?

我想使用adressId,但是当我需要在某种方法中使用该地址时,我不知道如何继续。

例如:

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
}

并在addressCollection中:

{
  id: 1
  address: 'Some info'
}

1 个答案:

答案 0 :(得分:1)

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

@DBRef(lazy = true)
Address address;

这样,您就可以找到具有特定地址ID的Person。您还可以使用Addressmongo repository来独立检索Address个对象。

Here是文档。