【发布时间】:2011-11-29 12:02:10
【问题描述】:
我需要使用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/clear 吗?好像没啥用,如果数据没有写到数据库里就在内存里。
如何强制休眠将数据写入数据库?
谢谢
【问题讨论】:
标签: java hibernate transactions