【发布时间】:2015-10-31 09:42:28
【问题描述】:
我读过很多文章,不鼓励在 Spring Data/MongoDB 中使用 DBRef 进行集合映射。那么,如何实现一个映射来存储从 students 集合中的这些对象中获取的 ObjectId 数组?
假设我有以下 POJO 模型:
@Document (collection = "courses")
public class Course {
@Id
private String id;
private String name;
private List<Student> students = new LinkedList<Student>();
//.. constructors, getters and setters ..
}
public interface CourseRepository extends MongoRepository<Course, String> { }
结果应该是这样的:
courses
{
_id : ObjectId("foo"),
_class: "model.Course",
name: "MongoDB for Dummies",
students: [ ObjectId("foo2"), ObjectId("foo3"), ... ]
}
而不是这个:
courses
{
_id : ObjectId("foo"),
_class: "model.Course",
name: "MongoDB for Dummies",
students: [
DBRef("student", ObjectId("foo2")),
DBRef("student", ObjectId("foo3"))
]
}
谢谢!
【问题讨论】:
标签: mongodb mapping spring-data spring-data-mongodb