有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

试图保存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) 个答案