玩2.0.Ebean.OneToMany孤儿拆除了

Dfi*_*ire 1 java ebean playframework-2.0

我需要一些帮助.我有两个关于onetomany关系的课程:

@Entity
public class Parent extends Model{

  @Id
  public Long id;

  @OneToMany(fetch = FeatchType.LAZY, cascade = CascadeType.ALL, orphanRemoval = true)
  public List<Child> children;

}
Run Code Online (Sandbox Code Playgroud)

@Entity
public class Child extends Model{

  @Id
  public Long id;

}
Run Code Online (Sandbox Code Playgroud)

所以当我调用remove()时,Child实体不会从DB中删除.

Parent parent = Parent.find.byId(id);
parent.children.remove(parent.children.get(0));
parent.save();
Run Code Online (Sandbox Code Playgroud)

下次我发现.byId - 所有的孩子都在那里,就像他们从未被删除一样:(

在内存数据库中播放2.0.4.

如果需要任何其他信息,请告诉我.

sti*_*ian 5

我做了一些修补,并意识到为什么这不起作用.

由于您具有没有任何连接表的单向关系,因此实际删除关联意味着删除相应的子记录(或至少更新parent_id列).EBean不这样做可能是件好事,因为它不知道/检查是否有其他表与Child有外键关系.

您可以做的是明确指出没有其他表与子进程有FK关系,它由Parent"拥有",并且当从关系中删除时,Ebean可以完全删除该实体.这是通过@PrivateOwnedchildren属性上添加注释来完成的Parent.

这篇文章让我觉得:https://groups.google.com/forum/? fromgroups =#!topic / broad/dXPWpJCQkj8