Java 试图保存数据时执行隔离工作时出错

Java 试图保存数据时执行隔离工作时出错,java,hibernate,sqlite,spring-data-jpa,Java,Hibernate,Sqlite,Spring Data Jpa,我有以下方法: List<BinValue> binValues = Arrays .stream(data) ... .collect(Collectors.toList()); binValueRepo.deleteByStatId(databaseGlobals.getMarriedStat().getId()); // for(BinValue binValue : binValues) { // b

我有以下方法:

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,我使用以下代码:

        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;

显然,将max connections设置为1可以解决此问题

 @Bean
   public DataSource dataSource() {
      BasicDataSource ans = new BasicDataSource();
      ans.setDriverClassName("org.sqlite.JDBC");
      ans.setUrl("jdbc:sqlite:" + sqliteDatabaseFile().getAbsolutePath());
      ans.setMaxTotal(1);


      return ans;
   }

显然,将max connections设置为1可以解决此问题

 @Bean
   public DataSource dataSource() {
      BasicDataSource ans = new BasicDataSource();
      ans.setDriverClassName("org.sqlite.JDBC");
      ans.setUrl("jdbc:sqlite:" + sqliteDatabaseFile().getAbsolutePath());
      ans.setMaxTotal(1);


      return ans;
   }