java—从hibernate批量插入或更新到oracle

k97glaaz  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(356)

我想使用hibernate对oracle数据库中的2000到3000条记录执行插入/更新操作。本机的插入和更新方法是按顺序进行的,这需要花费大量时间来完成。有没有一种方法可以使用hibernate在表中进行大容量插入和更新,这将花费更少的时间?如果是,请告诉我。同时,我也怀疑存储过程是否需要更少的时间或批量操作来满足我的要求。给我一个更好的选择和方法。下面是我正在使用的代码,这是一种使用hibernate的传统插入更新方式。

@Autowired
private SessionFactory session;

private Session getSession() {
    return session.getCurrentSession();
}

@Override
public Integer saveOrUpdateTest(Test test) {
    getSession().saveOrUpdate(test);
    return test.getTestId();
}

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ForeignKey;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name="Test")
public class Test implements Serializable{

private static final long serialVersionUID = 8844487972789619819L;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="TEST_ID")
private Integer testid;

@Column(name="EMPLOYEE_ID")
private Integer employee_ID;

@Column(name="EMPLOYEE_SUB_ID")
private Integer employee_Sub_ID;

public Integer getTestId() {
    return testid;
}

public void setTestId(Integer testid) {
    this.testid = testid;
}

public Integer getEmployeeId() {
    return employee_ID;
}

public void setEmployeeId(Integer employee_ID) {
    this.employee_ID = employee_ID;
}

public Integer getEmployeeSubId() {
    return employee_Sub_ID;
}

public void setCapEmployeeSubId(Integer employee_Sub_ID) {
    this.employee_Sub_ID = employee_Sub_ID;
}

}

提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题