2

任何人都可以解释MappingMongoConverter(接口的Spring's默认实现MongoConverter)如何在 POJO 和 Document 之间的映射不是那么微不足道的情况下工作吗?示例案例:POJO 有一个在 Document 中找不到的附加字段,Document 的结构不适合 POJO,...

Spring 官方文档似乎缺少此信息。

示例代码:

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

1 回答 1

1

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

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

于 2013-08-27T06:37:51.897 回答