我有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服务器。