我想多次保存一个对象,下面的代码无效:
for(int i = 0; i < 5; i++) {
repository.save(object);
}
然后我将源更改为:
List<SomeObject> objectList = new ArrayList<>();
for(int i = 0; i < 5; i++) {
objectList.add(object);
}
repository.save(object);
但它也无法工作,它只将对象保存一次到数据库。
也许是因为它指向一个实例,但我想知道是否有一种简单的方法可以多次保存对象?
谢谢!
答案 0 :(得分:1)
它只保存一次对象,因为您每次都使用相同的实例。
因此,当您第一次使用object
时,现在它有一个ID,
,然后您再次使用对象,但正如我们所说它有一个ID而不是保存它,您的程序在你的数据库中更新。
例如,如果你这样做:
for(int i = 0; i < 5; i++) {
repository.save(new Object());
}
或者如果你有一个对象列表,比如
List<SomeObject> objectList = new ArrayList<>();
for(int i = 0; i < 5; i++) {
objectList.add(object);
}
你可以这样做:
repository.saveAll(objectList);
现在你在表格中找到了5行
答案 1 :(得分:1)
我不熟悉Spring数据,可能会误解问题,但通常没有必要多次保存同一个对象。
如果在数据库中需要多个实例,则需要显式创建实例的克隆/副本(或左右)并单独保存所有这些实例。
例如,在保存对象的循环中添加创建新实例。
答案 2 :(得分:0)
使用构造函数,您可以多次保存同一对象:
Repository.save(new object(String name,String age));