如何使用hibernate在单个表中插入多个记录而不使用循环语句
当我尝试使用hibernate merge在单个表中插入多个记录时,我只获得一个记录插入。插入多条记录的解决方案是什么?
答案 0 :(得分:0)
您需要意识到,多个em.insert()
调用不需要导致多个SQL查询。
要启用批量插入,需要应用某些配置限制:
hibernate.jdbc.batch_size
设置为10到50之间的整数。这样可以启用JDBC批处理。从技术上讲,它的工作原理是,您的插入/合并将转换为批量插入而不是单个插入。hibernate.order_inserts
和hibernate.order_updates
设为true
。这有助于在使用级联时进行批处理。伟大的Vlad Mihalcea可以在blog找到有关Hibernate性能的更多信息。
Hibernate 5.2允许直接在持久化上下文级别配置批量大小:
entityManager.setJdbcBatchSize(10);
再次,关于弗拉德blog的更多细节。