我有一个超过100万条记录的csv文件。我想对这些记录进行一些处理,并将所有记录保存在DB中。
我尝试过几个选项。
将所有实体保存在一个GO
中jpaepository.save(实体);
这种方法需要永远,永远不会竞争。适用于较小的记录。
逐个保存所有实体
entities.forEach(jpaRepository ::保存);
这种方法已经完成,但需要大量时间,并且内存使用量很大。
答案 0 :(得分:1)
以下是我推荐的内容,仅基于您的问题 -
FileReaderService
StorageService
。将其注入FileReaderService
@Transactional
方法上添加save_N_records
注释。StorageService.save_N_records
反复拨打FileReaderService
。每次调用它时,请务必写一个日志来监控进度。