JPA中的聚合和分解

时间:2010-12-03 09:55:08

标签: java jpa aggregation decomposition

如何使用Java Persistence API实现聚合和分解?什么是最佳实践?

提前致谢, 丹尼尔

2 个答案:

答案 0 :(得分:0)

我找到了orphanRemoval@OneToMany关系的@OneToOne属性:

  

当从关系中删除一对一或一对多关系中的目标实体时,通常需要将删除操作级联到目标实体。此类目标实体被视为“孤儿”,orphanRemoval属性可用于指定应删除孤立实体。例如,如果订单包含多个订单项,并且其中一个订单项已从订单中删除,则已删除的订单项会被视为孤儿。如果将orphanRemoval设置为true,则在从订单中删除订单项时,系统商品实体将被删除。

用法:

@OneToMany(mappedBy="customer", orphanRemoval=true)
public List<Order> orders;

答案 1 :(得分:0)

在JPA中处理聚合时,有两件事情应该非常明确。

  1. 关系世界中的关系。
  2. 对象世界中所需的关系。
  3. Java世界中的关系受域需求的支配。例如,用户可能有许多地址,因此我们保持在用户中进行地址聚合而不保持反向关系。对于组合,我们需要处理级联行为。

    更详细的处理可以参见here