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.
如果需要任何其他信息,请告诉我.
我做了一些修补,并意识到为什么这不起作用.
由于您具有没有任何连接表的单向关系,因此实际删除关联意味着删除相应的子记录(或至少更新parent_id列).EBean不这样做可能是件好事,因为它不知道/检查是否有其他表与Child有外键关系.
您可以做的是明确指出没有其他表与子进程有FK关系,它由Parent"拥有",并且当从关系中删除时,Ebean可以完全删除该实体.这是通过@PrivateOwned在children属性上添加注释来完成的Parent.
这篇文章让我觉得:https://groups.google.com/forum/? fromgroups =#!topic / broad/dXPWpJCQkj8
| 归档时间: |
|
| 查看次数: |
1264 次 |
| 最近记录: |