我正在遍历对象列表并在每次循环后一次保存一个对象。我发现只有最后一个对象在使用 MongoRepository 接口时总是被保存。
例如
for(int i=0;i<=objectList.size();i++){
repositoryInterface.save(objectList.get(i));
}
在这种情况下,当 objectList 中大约有 3 个对象时,只保存最后一个对象。
同样,如果使用repositoryInterface 来保存所有objectList
查询,例如,repositoryInterface.save(objectList)
对于objectList 中的所有三个对象,只有对objectList 中最后一个对象的最后更改才会保留。例如,
public class Book {
private String bookName;
private int bookNumber;
//then getters and setters
}
List<Book> books = new ArrayList<>();
Book book0 = new Book();
book0.setBookName("Book0");
book0.setBookNumber(0);
books.add(book0);
Book book1 = new Book();
book1.setBookName("Book1");
book1.setBookNumber(1);
books.add(book1);
for(int i=0;i< books.size();i++){
switch(i){
case 0 :
books.get(0).setBookNumber(00);
break;
case 1 :
books.get(1).setBookNumber(11);
break;
default:
System.out.println("nothing per this example");
}
}
repositoryInterface.save(books);
现在检查 mongo 数据库,插入的是
{bookName:"Book0",bookNumber:11},{bookName:"Book1",bookNumber:11}
代替
{bookName:"Book0",bookNumber:00},{bookName:"Book1",bookNumber:11}