Java Spring boot-Jpa-SaveAll(Entity)数据库中缺少实体
当我试图保存21300个实体的列表时,我遇到了一个问题,但是在数据库中只保存了[SELECT COUNTid=]10506 控制台输出显示准备保存的列表的大小是正确的,因此代码是正确的。例如,如果我使用freq==30使它只循环一次,那么它工作得很好,因此当它循环几次时,它似乎以某种方式与for each循环相关联。失踪的实体在人口中有些分散 你知道为什么会有这种行为吗Java Spring boot-Jpa-SaveAll(Entity)数据库中缺少实体,java,spring,hibernate,spring-data-jpa,Java,Spring,Hibernate,Spring Data Jpa,当我试图保存21300个实体的列表时,我遇到了一个问题,但是在数据库中只保存了[SELECT COUNTid=]10506 控制台输出显示准备保存的列表的大小是正确的,因此代码是正确的。例如,如果我使用freq==30使它只循环一次,那么它工作得很好,因此当它循环几次时,它似乎以某种方式与for each循环相关联。失踪的实体在人口中有些分散 你知道为什么会有这种行为吗 public void loadTickAll(int conid) { System.out.println("&g
public void loadTickAll(int conid) {
System.out.println(">>>> MERGING <<<<<< Querying ticks for " + conid);
List<CandleTick> candlesHisto = histoCandleTickRepo.findByConidAll(conid, LocalDate.parse("2016-11-01"));
List<CandleTick> candlesLive = new ArrayList<>();
List<CandleTick> candles = Stream.of(candlesHisto, candlesLive).flatMap(Collection::stream)
.collect(Collectors.toList());
freqList.forEach((freq) -> {
if(freq>=30) {
System.out.println("Working on freq " + freq);
FlowMerger flowMerger = new FlowMerger(freq, contracts.get(conid));
List<CandleMerge> flow = flowMerger.createFlow(new ArrayList<>(candles));
Collections.reverse(flow);
System.out.println("Start saving " + freq + " - " + flow.size());
histoCandleMergeRepo.saveAll(flow);
System.out.println(freq + "/" + conid + " has been delivered and saved");
}
});
}
我设法追查到了这个问题。我展示了SQL并注意到我正在更新而不是插入 我的实体缺少一些注释
@GeneratedValue(generator = "merge_id_seq")
@SequenceGenerator(name = "candleid_generator_generator", sequenceName = "merge_id_seq", initialValue = 1)
@Id
private int id;
如果这解决了您的问题,请点击星号接受答案
@GeneratedValue(generator = "merge_id_seq")
@SequenceGenerator(name = "candleid_generator_generator", sequenceName = "merge_id_seq", initialValue = 1)
@Id
private int id;