我正在尝试使用 Spring Data MongoDB 和 Spring Batch 自定义保存实体类并为其编制索引的集合名称。该类声明如下:
@Document
@CompoundIndex(name = "unique_source", def = "{'fid': 1, 'sid': 1}", unique = true, background = true)
public class VariantSource {
...
}
Run Code Online (Sandbox Code Playgroud)
和项目作家:
public class VariantSourceMongoWriter extends MongoItemWriter<VariantSource> {
public VariantSourceEntityMongoWriter(MongoOperations mongoOperations, String collectionName) {
setTemplate(mongoOperations);
setCollection(collectionName);
}
}
Run Code Online (Sandbox Code Playgroud)
保存工作正常:对象被写入作为参数提供的集合中。问题是索引是在默认集合中创建的,以类名 ( variantSource)命名。
public class MongoCollections {
public String getCollectionFilesName() {
return "my_custom_collection_name"; // TODO Dynamic value
}
}
@Configuration
public class MongoCollectionsConfiguration {
@Bean
public MongoCollections …Run Code Online (Sandbox Code Playgroud)