I\'m looping list and inserting into database , but its getting updating records one by one.finally i\'m seeing in database last record of the list only.
input name
There's a very nice chapter about batch processing in the Hibernate docs.
Set the property
hibernate.jdbc.batch_size 20
Then use this code
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();
Make sure you consider the implications for your id-generation strategy e.g. discussed here.
Update 2015-09-23
I finally found the time to sit down and write a detailed article at https://frightanic.com/software-development/jpa-batch-inserts/.