我在Hibernate上執行批量插入MySQL時遇到了問題。Hibernate/MySQL批量插入問題
我使用Hibernate 3.3和MySQL 5.1
在較高的水平,這是發生了什麼事:
@Transactional
public Set<Long> doUpdate(Project project, IRepository externalSource) {
List<IEntity> entities = externalSource.loadEntites();
buildEntities(entities, project);
persistEntities(project);
}
public void persistEntities(Project project) {
projectDAO.update(project);
}
這導致在正日誌項(1爲每個行)如下:
休眠:(??????,,,,,)插入ProjectEntity(姓名,PARENT_ID, 路徑,PROJECT_ID,狀態,類型)值
我希望看到這個批處理,所以更新更高性能。這個例程可能會導致成千上萬行生成,並且每行的db行程是一個殺手。
爲什麼這不會成批? (這是我的理解,批處理插入應該在默認情況下通過休眠)。
這會啓用SQL語句的批處理嗎? (會話是否保持狀態的聲音與批次正交,但也許我從類名推斷太多) – meriton 2010-02-20 20:06:28
@meriton我已更新我的答案以添加更多詳細信息。 – 2010-02-20 20:29:09
+1:現在我明白了,謝謝! – meriton 2010-02-21 16:08:40