试图保存Iterable时执行独立工作时发生java错误
我有以下方法:
List<BinValue> binValues = Arrays
.stream(data)
...
.collect(Collectors.toList());
binValueRepo.deleteByStatId(databaseGlobals.getMarriedStat().getId());
// for(BinValue binValue : binValues) {
// binValueRepo.save(binValue);
// }
binValueRepo.save(binValues);
首先,它准备一个BinValue
实体列表,然后尝试将其保存到存储库中
问题是:如果我试图保存整个列表,会出现以下错误:
org.springframework.dao.CannotAcquireLockException: error performing isolated work; SQL [n/a];...
LockAcquisitionException: error performing isolated work
org.sqlite.SQLiteException: [SQLITE_BUSY] The database file is locked (database is locked)
如果我一个人做这件事,那么一切都会正常(但速度很慢)
要填充BinValue,我使用以下代码:
BinValue ans = new BinValue();
ans.setBin(bin);
ans.setRegion(region);
...
也就是说,我没有填写主键字段
其定义如下:
@Entity
@Table(name = "bin_values")
@NoArgsConstructor
@AllArgsConstructor
public class BinValue {
@Id
@Column(name="id")
@GeneratedValue(generator="sqlite")
@TableGenerator(name="sqlite", table="sqlite_sequence",
pkColumnName="name", valueColumnName="seq",
pkColumnValue="bin_values")
@Getter
@Setter
private long id;
共 (0) 个答案