技术栈:Oracle数据库11.2.0.2,Java 1.6,Hibernate 3.6.6.Final。
我对Hibernate不熟悉,如果这很简单请见谅。
以下代码应该实现了一些优化:
Transaction tx = session.beginTransaction();
for (int i = 0; i < 10; i++) {
POJO pojo = new POJO(i);
session.save(pojo);
}
tx.commit();
hibernate.cfg.xml
有以下条目
<property name="jdbc.batch_size">500</property>
如何验证Hibernate是否真正批量插入了这些记录?如果它只执行了10次插入,那就没有优势。
一个想法是在 save()
后面放置jdbc纯查询,以检查记录是否已添加到数据库:
如何验证Hibernate是否真正批量插入了这些记录?如果它只执行了10次插入,那就没有优势。
一个想法是在 save()
后面放置jdbc纯查询,以检查记录是否已添加到数据库:
String query = "retrieve previously added element"
PreparedStatement stmt = session.connection().prepareStatement(query.toString());
Result rs = statement.executeQuery();
/** check contents of rs */
在我的情况下,它返回了一个非空集合,其中包含先前添加的元素。这意味着什么?还有其他方法可以检查批处理是否起作用。
谢谢提前