Java 如何使用hibernate创建本机查询从Oracle写入“全部插入”?
我试图将主任务旁边的许多信息作为线程插入表中,但似乎这还不够,不幸的是,性能是个大问题。 我一直在使用spring和hibernate,但还是个新手。 因为我一直在使用em.persist。 我从Oracle听说过INSERT ALL,但它不会与hibernate配合得很好,或者可能它不受支持,因为我找不到任何证据。 或者您能提出任何有助于提高插入性能的解决方案,如有任何意见,将不胜感激 这是save方法内部的一些代码Java 如何使用hibernate创建本机查询从Oracle写入“全部插入”?,java,performance,spring,hibernate,nativequery,Java,Performance,Spring,Hibernate,Nativequery,我试图将主任务旁边的许多信息作为线程插入表中,但似乎这还不够,不幸的是,性能是个大问题。 我一直在使用spring和hibernate,但还是个新手。 因为我一直在使用em.persist。 我从Oracle听说过INSERT ALL,但它不会与hibernate配合得很好,或者可能它不受支持,因为我找不到任何证据。 或者您能提出任何有助于提高插入性能的解决方案,如有任何意见,将不胜感激 这是save方法内部的一些代码 List<Obj> listOfObj; this.save(
List<Obj> listOfObj;
this.save(listOfObj);
public void save(listOfObj){
for (int i = 0; i < listOfObj.size(); ++i)
{
this.em.persist(listOfObj.get(i));
if (i % 1000 == 0)
{
this.em.flush();
this.em.clear();
}
}
请展示一些代码并描述一个特定的问题。使用SQL批插入可以更快地插入…只是一个想法。为什么您认为您需要全部插入,使用批插入通常也一样快。假设em.flush提交更新,那么这是一个坏主意。您应该在事务结束时只提交一次。@Issue Dev,您明白了吗?批量插入模式对于我的任务来说太慢。