用spring-data-mongodb批量插入数据,如何知道有一部分数据没有插入成功?
大家讲道理
大家讲道理 2017-05-02 09:17:54
0
1
584

我想用spring-data-mongodb的接口执行批量插入,每次插入100条数据。接口描述如下:

    /**
     * 参考:org.springframework.data.mongodb.core.MongoTemplate
     * 参考:org.springframework.data.mongodb.core.MongoOperations
     *
     * Insert a list of objects into the specified collection in a single batch write to the database.
     * 
     * @param batchToSave the list of objects to save.
     * @param collectionName name of the collection to store the object in
     */
    void insert(Collection<? extends Object> batchToSave, String collectionName);

然而这里存在一个问题:当有重复的唯一索引时,插入操作会“部分成功”——某些文档插入成功,某些插入失败。我想知道什么时候发生的插入失败,哪些失败了,哪些成功了。然而,上面的接口没有返回值。有谁碰到过这个问题吗?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

membalas semua(1)
世界只因有你

Menghadapi masalah yang sama, versi spring-data-mongodb ialah 1.8.2.RELEASE.

Apabila memasukkan data dengan id indeks unik, tiada nilai pulangan, tiada pengecualian, dan ia tidak akan menjejaskan data asal.

Penyelesaian saya kemudian ialah membuat pertanyaan sebelum memasukkan Jika data sudah wujud mengikut pertanyaan id, sisipan tidak akan dilakukan dan data akan disimpan dalam hasil yang dikembalikan.

public Person getObject(String id) {
        return mongoTemplate.findOne( new Query( Criteria.where( "id" ).is( id ) ),Person.class );
    }

Jika anda mempunyai penyelesaian yang lebih baik, sila kongsikannya.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan