有没有办法使用 Hibernate 批量插入或更新记录
Is there a way for bulk insert or update of records using Hibernate
我正在尝试使用休眠在 oracle 中插入或更新一些记录。我有大约 2000 个实体(记录),我目前 inserting/updating 一个一个地顺序排列。这让我花了很多时间来完成,因为休眠内部选择然后做 insert/update。我想知道有没有一种方法可以让我在休眠状态下批量 insert/update。如果是,请让我知道我该怎么做。并且让我知道在进行批量操作时是否存在任何瓶颈。
下面是我如何使用休眠 save/update
@Autowired
private SessionFactory session;
private Session getSession() {
return session.getCurrentSession();
}
@Override
public Integer saveOrUpdateTest(Test test) {
getSession().saveOrUpdate(test);
return test.getTestId();
}
下面是我正在使用的实体class。
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;
}
}
这个here!
这将适用于您的场景。
我正在尝试使用休眠在 oracle 中插入或更新一些记录。我有大约 2000 个实体(记录),我目前 inserting/updating 一个一个地顺序排列。这让我花了很多时间来完成,因为休眠内部选择然后做 insert/update。我想知道有没有一种方法可以让我在休眠状态下批量 insert/update。如果是,请让我知道我该怎么做。并且让我知道在进行批量操作时是否存在任何瓶颈。 下面是我如何使用休眠 save/update
@Autowired
private SessionFactory session;
private Session getSession() {
return session.getCurrentSession();
}
@Override
public Integer saveOrUpdateTest(Test test) {
getSession().saveOrUpdate(test);
return test.getTestId();
}
下面是我正在使用的实体class。
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;
}
}
这个here! 这将适用于您的场景。