【发布时间】:2018-06-27 13:39:17
【问题描述】:
我参与了需要在单个事务中持久化嵌套对象的项目。
class PurchaseOrder{
@Id
@GeneratedValue(strategy=strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = PurchaseOrderMaterial.class)
@JoinColumn(name = "purchaseOrder_id")
private List<PurchaseOrderMaterial> purchaseOrderMaterials;
......
......
}
还有 PurchaseOrderMaterial.java
class PurchaseOrderMaterial{
@Id
@GeneratedValue(strategy=strategy = GenerationType.IDENTITY)
private Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = PurchaseOrderMaterialDutiesAndTax.class)
@JoinColumn(name = "purchaseOrderMaterial_id", nullable = true)
private List<PurchaseOrderMaterialDutiesAndTax> purchaseOrderMaterialDutiesAndTaxes;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = PurchaseOrderOtherExpenditureItem.class)
@JoinColumn(name = "purchaseOrderMaterial_id")
private List<PurchaseOrderOtherExpenditureItem> purchaseOrderOtherExpenditureItems;
.....
.....
}
其他两个实体(PurchaseOrderOtherExpenditureItem.java 和 PurchaseOrderOtherExpenditureItem.java)将没有子实体/关系。我从前端构图对象。在我的服务实现中,我只调用了
repo.save(purchaseOrder);
我的应用程序需要 5 秒来存储数据。 PS:以上代码为示例,实际代码可能有更多子实体。
【问题讨论】:
标签: mysql spring hibernate jpa spring-data-jpa