删除实体与更新关系

时间:2015-01-05 16:41:59

标签: google-app-engine jpa

我有一个应用程序正在构建以在Google App Engine上部署,我有如下定义的实体关系(简化)

public class League {
  @OneToMany(mappedBy="league")
  private List<Team> teams;
}

public class Team {
  @ManyToOne
  private League league;
}

我的问题是,当我想删除一个团队时,我可以在事务中简单地使用实体管理器remove()方法:

Team teamToDelete = em.find(Team.class, teamId);
em.remove(teamToDelete);

,或者我是否必须通过更新联盟的团队列表并删除团队来手动更新关系的双方,然后将团队的联盟设置为null?

1 个答案:

答案 0 :(得分:0)

属于同一实体组的实体在物理上存储在一起,因此您只需删除子实体(Team),并且联盟实体将在数据存储中受到影响。

从纯java的角度来看,如果你有一个联盟对象实例引用了刚刚在数据存储中删除的团队,你可能不得不“刷新”该对象。