私はIDとバージョンフィールドを持つ簡単なエンティティAを持っています。 ID生成戦略はTABLEに設定されています。プロパティhibernate.jdbc.batch_size
およびhibernate.jdbc.batch_versioned_data
は、20
およびtrue
に設定されています。予期せぬ動作をバッチ処理することがありません
私は次のようにエンティティAのバッチ挿入を実行しようとしてい:
for (int i = 0; i < 500; i++) {
A a = new A();
a.persist();
if (i % 20 == 0) {
em.flush();
em.clear();
}
}
MySQLのログを見るとinsert into a (version, id) values (0, 1), (0, 2),...(0, 20)
が25回繰り返しのように、私は何かを期待していたのに対し、これは、500行の別々のinsert into a (version, id) values (0, X)
文になり。 Hibernateは3.6.8、MySQLの5.5を使用して
org.hibernate.jdbc.AbstractBatcher - Executing batch size: 20
org.hibernate.jdbc.AbstractBatcher - no batched statements to execute
:デバッグにhibernate.jdbc
ログレベルを設定する
を示しています。
私はここで何が欠けていますか?