我有一个名为 Foo
的 DAO。 MongoTemplate
想要将其映射到名为 foos
的数据库集合。问题是:
- 在 Mongo 中,该集合被命名为
Foos
。 Foo
对象来自第三方库,其所有构造函数都是私有(private)
。
如何配置我的 Spring Bean,以便 MongoTemplate
——通过 MongoItemReader
--知道集合Foos
映射到我的文档Foo
吗?
如果有帮助的话,我主要关心的是从 MongoDB 读取数据。
最佳答案
答案:我最终扩展了 MongoItemReader
并为 collection
添加了 getter/setter。这使我能够委托(delegate)我不关心的内容,并修改 doPageRead()
以在我的自定义查询中设置集合:
@Scope("step")
public class MyMongoItemReader extends MongoItemReader<Object> {
public void setCollection(String collection) {
this.collection = collection;
}
@Override
protected Iterator<Object> doPageRead() {
...
Query mongoQuery = // set query
...
return (Iterator<Object>) //
template.find(mongoQuery, Object.class, this.collection).iterator();
}
}
关于java - 如何设置MongoTemplate集合映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22155722/