首页 > 解决方案 > 如何在 mongodb spring-data 中使用 DBRef 保存文档

问题描述

我有扩展 MongoRepository 的 Spring 数据存储库类。所以我正在做一个 POST 请求来创建一个记录,该记录包含几个引用字段来引用其他文档。

存储库接口:

@RepositoryRestResource(collectionResourceRel = "user",path = "user")
 public interface UserRepository extends MongoRepository<User,String>{
}

模型类:

@Document(collection = "user")
public class User {
@Id
private String id;
private String email;
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
private Date createdTime;
@Field("infoSignups")
@DBRef
private InfoSignUp infoSignups;
@Field("webinarSignups")
@DBRef
private WebinarSignUp webinarSignups;

}

@Document(collection = "infoSignups")
public class InfoSignUp {

@Id
private String id;
private String email;

}

@Document(collection = "webinarSignups")
public class WebinarSignups {

@Id
private String id;
private String email;

}

POST 请求:

{  
  "email":"sheen.example@gmail.com",
  "name":"test",
  "infoSignups":[  
    {  
     "id":"5cbeb33199a4640b94ba1de8"
     }
   ],
  "webinarSignups":[  
    {  
     "id":"5cc0136599a4641d835d3259"
    }
   ],
  "businessName":"test data",
  "phone":"test data",
  "address":"test data",
  "createdTime":"2015-09-26T01:30:00.000Z"
 }

但是当我向存储库端点发出 POST 请求时,参考字段没有保存,其他字段保存在集合中。我是否必须在不使用 Spring 数据的情况下手动保存对象?如何使用对端点的 POST 请求保存对其他集合的引用?

标签: javaspring-dataspring-mongodb

解决方案


推荐阅读