在oneToMany关联中映射多个权限的性能问题

时间:2018-06-05 12:57:18

标签: hibernate jpa spring-data-jpa

我有3个实体 - 1.交易2.部分3.订单 交易与tranche和tranche有一对多的关系,也与订单有一对多的关系。即1笔交易可以有多笔交易,1笔交易可以有很多订单。

为此,我创建了3个实体。

1.Deal

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "deal_id")
private List<Tranche> deals = new ArrayList<Tranche>();

2.Tranche

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "tranche_id")
private List<Order> orders = new ArrayList<Order>();

我的频繁操作是插入数据库。 我正在使用JpaRepositories's save()方法插入数据。

@Repository
public interface ReportRepo extends JpaRepository<Deal, Long>{

}

没有覆盖save()方法,只是按原样使用。

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

结果,它在数据库中创建3个表并插入数据。

一切正常,唯一的问题是性能问题。 这需要花费太多时间来执行代码。

例如:我有27 deals, 49 tranches and 4000 orders。为了存储这么多的数据,我正在制作27 DB save calls(每个Deal对象),但它几乎需要 15分钟。来执行这段时间过长的代码

请就此提出建议。如果性能显着提高,我也非常乐意改变数据库表。将来,可能还会有选择/更新操作要求。在后端使用Oracle服务器。

0 个答案:

没有答案