Мне нужно вставить много данных в базу данных, используя Hibernate, я смотрел на пакетную вставку из Hibernate, то, что я использую, похоже на пример в руководстве:
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);
session.save(customer);
if ( i % 20 == 0 ) { //20, same as the JDBC batch size
//flush a batch of inserts and release memory:
session.flush();
session.clear();
}
}
tx.commit();
session.close();
но я вижу, что flush не записывает данные в базу данных.
Читая об этом, если код находится внутри транзакции, то ничего не будет зафиксировано в базе данных, пока транзакция не выполнит фиксацию.
Так что же нужно использовать flush / clear? кажется бесполезным, если данные не записаны в базу данных, то они находятся в памяти.
Как заставить Hibernate записать данные в базу данных?
Спасибо