Spring的MappingMongoConverter文档

时间:2013-08-26 18:56:19

标签: spring mongodb converter spring-data-mongodb

任何人都可以解释MappingMongoConverterSpring's接口的MongoConverter默认实现)如何适用于POJO和Document之间的映射不是那么简单的情况?示例案例:POJO有一个在Document中找不到的附加字段,Document有一个不适合POJO的结构,......

The official Spring documentation似乎缺乏此信息。

示例代码:

while (cursor.hasNext()) { 
    DBObject obj = cursor.next(); 
    Foo foo = mongoTemplate.getConverter().read(Foo.class, obj);  
    returnList.add(foo); 
}

1 个答案:

答案 0 :(得分:1)

文档缺乏,因此不得不深入了解来源。我将分享我的工作。棘手的部分是POJO到BSON的转换:

它首先要做的是在构造函数上查找@PersistenceConstructor注释。如果未设置首选构造函数,则使用no​​ arg构造函数。 no arg构造函数的无映射很简单。 对于首选构造函数的映射,所有参数都必须存在于BSON 中。如果找不到参数,则会抛出MappingException这意味着BSON文件可以包含不必映射到构造函数参数的额外字段。这些参数将被忽略。