gpt4 book ai didi

java - Hibernate saveOrUpdate 大数据

转载 作者:行者123 更新时间:2023-12-01 04:37:48 24 4
gpt4 key购买 nike

我正在尝试使用 Hibernate 插入或更新大数据。我有一个包含 350k 个对象的列表,当我使用 Hibernate saveOrUpdate() 时,需要几个小时才能插入所有数据。

我使用下面的代码来执行此操作。我的开发环境是JDK1.4和Oracle数据库。

public void saveAll(List list)throws HibernateException{
Session session = HibernateUtil.getEYSSession();
Iterator it = list.iterator();
int i = 0;
while(it.hasNext()){
i++;
Object obj = it.next();
session.saveOrUpdate(obj);
if (i % 50 == 0) { session.flush(); session.clear(); }
}
}

我正在使用批量更新,并且还设置了 hibernate.jdbc.batch_size 属性 50,但没有帮助。

我的对象与另一个对象具有一对一的关系,因此在这种情况下使用 StatelessSession 可能会出现问题。因为我认为 StatelessSession 不会级联到组合对象。

在这种情况下,您对如何提高 saveOrUpdate() 操作的性能有什么想法吗?

谢谢。

最佳答案

对于每个 saveOrUpdate 操作,Hibernate 也会生成一个 select 语句。在我看来,使用 Hibernate 的 saveOrUpdate 更新或插入大量数据根本不是一个好的选择。我建议使用存储过程或迁移到 SpringJDBCTemplate。

关于java - Hibernate saveOrUpdate 大数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17083284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com