Я пытаюсь заполнить свою БД большим количеством тестовых данных, поэтому я написал CommandLineRunner для сохранения около 2 тыс. Сущностей.spring boot jpa - генерировать и сохранять данные теста
It Work's - но наступает конец FOREVER (5-10 минут) - Я справляюсь с этим неправильно?
@Component
public class DbSeederTest implements CommandLineRunner {
@Autowired
FirstRepo firstRepo;
@Autowired
SecondRepo secondRepo;
@Autowired
ThirdRepo thirdRepo;
private List<FirstEnt> firstList = new ArrayList<>();
private List<SecondEnt> secondList = new ArrayList<>();
private List<ThirdEnt> thirdList = new ArrayList<>();
private void generateTestData() {
// generate alot of entities, and add them to the Lists
}
@Override
public void run(String... args) throws Exception {
System.out.println("saving ents...");
generateTestData();
try {
firstRepo.save(firstList);
secondRepo.save(secondList);
thirdRepo.save(thirdList);
} catch(Exception e) {
e.printStackTrace();
}
}
}
Я не знаю, почему это занимает слишком много времени, но вы можете уменьшить время, используя концепцию потока. Поскольку данные уже заполняются после 'generateTestData();', поэтому теперь вызывайте каждый метод сохранения repo в другой поток. – SachinSarawgi