我使用彈簧數據mongodb的和具有簡單的儲存庫,其被配置具有以下配置:彈簧數據MongoDB的散裝保存繼續錯誤
@Configuration
@EnableMongoRepositories(basePackages = "com.my.package")
@Profile("default")
public class MongoConfig extends AbstractMongoConfiguration {
@Value("${mongo.db.uri}")
private String mongoDbUri;
@Value("${mongo.db.database}")
private String mongoDbDatabaseName;
@Override
protected String getDatabaseName() {
return mongoDbDatabaseName;
}
@Override
public MongoClient mongoClient() {
return new MongoClient(new MongoClientURI(mongoDbUri));
}
}
所使用的庫擴展CrudRepository,這使得該我可以調用saveAll()方法。默認情況下,除非向insertMany/updateMany命令傳遞了「continueOnError」爲true或具有「BulkMode.unordered」的選項,否則在mongodb中執行saveAll(批量操作)將停止。有沒有什麼辦法可以將spring數據配置爲在錯誤時始終繼續(或者始終執行無序的插入/更新),這樣,即使有些記錄失敗,執行saveAll也會嘗試整個批量。
謝謝!
在[舊版本的驅動程序的MongoDB的](http://api.mongodb.com/java/2.12/com/mongodb/WriteConcern.html#continueOnErrorForInsert(布爾值))是可能的設置此使用WriteConcern.continueOnError()的行爲。然而,這從api中刪除。 – user45