如何使用 Java Persistence API 实现聚合和分解?最佳实践是什么?
在此先感谢,丹尼尔
我找到了和关系的orphanRemoval
属性:@OneToMany
@OneToOne
当一对一或一对多关系中的目标实体从关系中删除时,通常希望将删除操作级联到目标实体。此类目标实体被视为“孤儿”,并且 orphanRemoval 属性可用于指定应删除的孤儿实体。例如,如果一个订单有许多订单项,并且其中一个订单项已从订单中删除,则删除的订单项将被视为孤立订单项。如果 orphanRemoval 设置为 true,则在从订单中删除行项目时将删除行项目实体。
用法:
@OneToMany(mappedBy="customer", orphanRemoval=true)
public List<Order> orders;
在 JPA 中处理聚合时,有两件事应该非常清楚。
Java 世界中的关系由领域需求决定。例如,一个用户可能有很多地址,所以我们在用户中保持地址的聚合,而不是保持反向关系。对于组合,我们需要处理级联行为。
更详细的处理可以在这里看到