小编Sib*_*jan的帖子

Spring Boot JPA 批量插入

我有 3 个实体父、子、子子。Parent 是 Child 的父级,而 Child 是 SubChild 的父级。我需要插入大约 700 个 Parent 对象。父级可以拥有 50 个子级对象。Child 可以有 50 个 SubChild 对象。我尝试正常,repository.save(ListOfObjects)大约需要 4 分钟。

然后我尝试使用实体管理器persistflushclear基于批量大小(500)。这也花费了大约 4 分钟。性能上没有太大差异。请建议一种有效插入如此大量数据的最佳方法。

家长

@Entity
public class Parent {
@Id @GeneratedValue(strategy= GenerationType.AUTO)
private Long parentId;
private String aaa;
private String bbb;
private String ccc;
@Version
private Long version;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "parent", fetch = FetchType.LAZY)
@JoinColumnsOrFormulas({
@JoinColumnOrFormula(column=@JoinColumn(name="parentId",referencedColumnName="parentId",nullable=false))})
private List<Child> childs = new ArrayList<>();
public …
Run Code Online (Sandbox Code Playgroud)

jpa spring-data-jpa spring-boot hibernate-batch-updates

6
推荐指数
1
解决办法
1万
查看次数