Hibernate 单域关联中多实体映射的性能问题

Hibernate 单域关联中多实体映射的性能问题,hibernate,jpa,spring-data-jpa,Hibernate,Jpa,Spring Data Jpa,我有3个实体-1。交易2。第3批。秩序 该交易与批次之间存在一对多关系,批次与订单之间也存在一对多关系。i、 e.1交易可以有多个部分,1部分可以有多个订单 为此,我创建了3个实体 1.成交 @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "deal_id") private List<Tranche> deals = new ArrayList<Tranche&g

我有3个实体-1。交易2。第3批。秩序 该交易与批次之间存在一对多关系,批次与订单之间也存在一对多关系。i、 e.1交易可以有多个部分,1部分可以有多个订单

为此,我创建了3个实体

1.成交

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "deal_id")
private List<Tranche> deals = new ArrayList<Tranche>();
没有重写save()方法,只是按原样使用

我正在创建一个交易对象,其中包含份额和订单的详细信息,然后使用存储库将该对象保存到数据库中

因此,它将在数据库中创建3个表并插入数据

一切正常,唯一关心的是性能问题。 执行代码花费了太多的时间

例如:我有27笔交易、49批和4000份订单。为了存储这么多的数据,我正在进行
27 DB的save调用(每个交易对象),但执行此代码几乎要花费15分钟的时间,这太长了


请对此提出建议。如果性能显著提高,我也非常愿意更改数据库表。将来,可能还会出现选择/更新操作需求。在后端使用Oracle server。

您可以使用一些选项检查我的答案,以解决您的问题:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "tranche_id")
private List<Order> orders = new ArrayList<Order>();
@Repository
public interface ReportRepo extends JpaRepository<Deal, Long>{

}