Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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 SpringDataREST:嵌套对象未存储在单独的Mongo存储库中_Java_Spring_Mongodb_Spring Boot_Spring Data Rest - Fatal编程技术网

Java SpringDataREST:嵌套对象未存储在单独的Mongo存储库中

Java SpringDataREST:嵌套对象未存储在单独的Mongo存储库中,java,spring,mongodb,spring-boot,spring-data-rest,Java,Spring,Mongodb,Spring Boot,Spring Data Rest,我正在玩Spring数据Rest。我无法完成的一件事是将嵌套对象存储在专用存储库中。以下是我的两个模型类人员和地址: @Entity public class Address { @NotEmpty public String address, email; @Id public String id; } @Entity public class Person { @Id public String id; public String firstName, l

我正在玩Spring数据Rest。我无法完成的一件事是将嵌套对象存储在专用存储库中。以下是我的两个模型类人员和地址:

@Entity
public class Address {
    @NotEmpty public String  address, email;
    @Id public String id;
}

@Entity
public class Person {
    @Id public String id;
    public String firstName, lastName;
   @OneToOne public Address address;
}
这里是我在Spring Boot应用程序中使用的两个Mongo存储库

@RepositoryRestResource(collectionResourceRel = "person", path = "person")
    public interface PersonRepository extends MongoRepository<Person, String> {}

 @RepositoryRestResource(collectionResourceRel = "address", path = "address")
public interface AddressRepository extends MongoRepository<Address, String> {}
@RepositoryRestResource(collectionResourceRel=“person”,path=“person”)
公共接口PersonRepository扩展了MongoRepository{}
@RepositoryRestResource(collectionResourceRel=“address”,path=“address”)
公共接口AddressRepository扩展了MongoRepository),在这种情况下,由于定义了Person存储库,因此Person资源应该将地址作为URI呈现给其相应的资源,我认为这将存储在单独的存储库中


因此,问题是如何将地址存储在单独的存储库中?这可能与所描述的MongoRepository不兼容吗?

如果您专门使用MongoDB,请不要使用JPA注释。 您需要的两个神奇注释如下:

@org.springframework.data.annotation.Id
@org.springframework.data.mongodb.core.mapping.DBRef
我在上面完全限定了它们,以便您可以看到其他类似注释之间的差异

@DBRef告诉Springs MongoDB驱动程序将这些对象存储在一个单独的bucket中

以下是您的新课程:

public class Address {
    @NotEmpty public String  address, email;
    @Id public String id;
}

public class Person {
    @Id public String id;
    public String firstName, lastName;
    @DBRef public Address address;
}