Что-то простое, что вы можете попробовать, это очистить и очистить сеанс, скажем, каждые 100 объектов ...
так выполнить
session.flush();
session.clear();
каждые 100 или 1000 вставок.
Это очистит и очистит сеанс гибернации и остановит его слишком большой рост (возможно, поэтому ваши 100 000 объектов занимают так много времени).
Кроме того, если вы используете генератор идентификатора идентификатора, hibernate автоматически отключит пакетную вставку. Пакетные вставки улучшат производительность. Вам также необходимо указать свойство конфигурации hibernate.jdbc.batch_size, эквивалентное вашим 100 за номер времени.
Источником этого послужило постоянство Java Мэннинга в Hibernate (великая книга - много раз спасала мою кожу).