【发布时间】:2019-09-18 08:30:58
【问题描述】:
我有一个 Spring Boot 应用程序,我想在其中使用单个 DB 查询插入多条记录:-
public void addEvents() {
String sql = "INSERT INTO Data values(1,'Data 1'), (2,'Data 2'),(3,'Data 3')";
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.getTransaction().begin();
entityManager.createNativeQuery(sql).executeUpdate();
entityManager.getTransaction().commit();
}
实体类:-
@Entity
@Table
public class Data {
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String name;
public Data(String name) {
this.name = name;
}
public Data(Integer id, String name) {
this.id = id;
this.name = name;
}
public Data() {
}
}
这里的数据是我要插入的实体。我需要在几秒钟内在我的数据库中插入超过 10000 行。因此,触发单独的 DB 调用成本太高。因此,我为此目的使用了一个查询。此查询是本机查询。谁能告诉我 JPA 是否提供了一个开箱即用的 API 来在单个 DB cl 中插入多个实体?
【问题讨论】:
-
你可以在这里添加你的实体类吗?
-
@ShaunakPatel - 已添加,请立即查看
-
我建议你应该有批处理作业来处理这种情况。在服务器不忙的时候(用户流量较少的时候)运行批处理作业插入这么多记录
标签: hibernate jpa spring-data-jpa spring-data