Java 是否有一种使用Hibernate批量插入或更新记录的方法

Java 是否有一种使用Hibernate批量插入或更新记录的方法,java,bulkinsert,Java,Bulkinsert,我正在尝试使用hibernate在oracle中插入或更新一些记录。我有大约2000个实体(记录),我目前正在按顺序逐个插入/更新这些实体。由于hibernate在内部选择,然后执行插入/更新,这需要花费大量时间来完成。我想知道是否有一种方法可以在hibernate中进行批量插入/更新。如果是的话,请告诉我怎么做。另外,请务必让我知道在批量操作中是否存在任何瓶颈。 下面是我使用hibernate进行保存/更新的方法 @Autowired private SessionFactory sessio

我正在尝试使用hibernate在oracle中插入或更新一些记录。我有大约2000个实体(记录),我目前正在按顺序逐个插入/更新这些实体。由于hibernate在内部选择,然后执行插入/更新,这需要花费大量时间来完成。我想知道是否有一种方法可以在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;
}

}
这个! 这将适用于您的场景。

浏览此链接并使用hql进行更新