在不使用 DBRef 的情况下映射集合(Spring 数据 MongoDB)
Mapping a Collection without using DBRef (Spring Data MongoDB)
我读了很多书,不鼓励在 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"))
]
}
谢谢!
您可能想尝试显而易见的方法并将 students
更改为 List<ObjectId>
。 ;)
我读了很多书,不鼓励在 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"))
]
}
谢谢!
您可能想尝试显而易见的方法并将 students
更改为 List<ObjectId>
。 ;)