如何在动态集合中使用MongoRepository到CRUD

时间:2013-07-13 15:48:34

标签: spring mongodb spring-data-mongodb

我不想使用DBRef。 我想要一个像这样的数据库: 不同的学校有自己的收藏品,如

  1. 收集名称“school1-students”
  2. 收集名称“school2-students”
  3. 收集名称“school3-students”......
  4. 每个集合都用于保存学生信息。

    据我所知,我们可以使用@Document(collection =“school4”)或使用MongoTemplate操作来管理集合名称。但是我想使用MongoRepository。如果有人能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

这样的事情应该有效:

public class PerSchoolStudentRepository {
    public static CrudRepository<Student, ObjectId> buildRepository(String school, MongoOperations mongoOperations) {
        MongoPersistentEntity<Student> persistentEntity = (MongoPersistentEntity<Student>) mongoOperations.getConverter().getMappingContext().getPersistentEntity(Student.class);
        MongoEntityInformation<Student, ObjectId> mongoEntityInformation = new MappingMongoEntityInformation<Student, ObjectId>(persistentEntity, school+"Students");
        return new SimpleMongoRepository<Student, ObjectId>(mongoEntityInformation, mongoOperations);
    }
}