我有 3 个实体父、子、子子。Parent 是 Child 的父级,而 Child 是 SubChild 的父级。我需要插入大约 700 个 Parent 对象。父级可以拥有 50 个子级对象。Child 可以有 50 个 SubChild 对象。我尝试正常,repository.save(ListOfObjects)大约需要 4 分钟。
然后我尝试使用实体管理器persist,flush并clear基于批量大小(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)