Что сделано до сих пор, я использую jpa (репозитории) для вставки списка этих таблиц A, B и A_B.
Проблема в том, что использование jpa поскольку огромный набор данных не оптимизирован, поэтому у меня возникла идея использовать jdbcTemplate.batchUpdate вот так:
Код: Выделить всё
int [][] insertAResults = jdbcTemplate.batchUpdate(
sqlQueryA,
List,
List.size(),
(PreparedStatement ps, A a) ->{
ps.setInt(1,a.getId());
...
}
);
int [][] insertBResults = jdbcTemplate.batchUpdate(
sqlQueryB,
List,
List.size(),
(PreparedStatement ps, B b) ->{
ps.setInt(1,b.getId());
...
}
);
int [][] insertA_BResults = jdbcTemplate.batchUpdate(
sqlQueryA_B,
List,
List.size(),
(PreparedStatement ps, Map ids) ->{
ps.setInt(1,ids.keySet().stream().findFirst().get());
ps.setInt(1,ids.values().stream().findFirst().get());
}
);
Проблема состоит в том, чтобы использовать прямую связь между обеими таблицами (я использую другую таблица, чтобы найти соответствие им, и она находится внутри 3-х вложенных циклов for, поэтому я думаю, что потенциально заработанная оптимизация времени может быть потеряна).
Итак, как я могу оптимизировать вставку 2 два стола и их общий стол ?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -springboo
Мобильная версия