gpt4 book ai didi

java - Play 2.0。伊 bean 。 OneToMany 孤儿删除坏了

转载 作者:行者123 更新时间:2023-11-29 07:59:14 24 4
gpt4 key购买 nike

我需要一些帮助。我有两个具有一对一关系的类:

@Entity
public class Parent extends Model{

@Id
public Long id;

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

}

@Entity
public class Child extends Model{

@Id
public Long id;

}

所以当我调用 remove() 时,子实体不会从数据库中删除。

Parent parent = Parent.find.byId(id);
parent.children.remove(parent.children.get(0));
parent.save();

下次我找到.byId - 所有的 child 都在那里,就像他们从未被删除过一样:(

玩2.0.4,内存数据库。

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

最佳答案

我对此做了一些修改,并意识到为什么这不起作用。

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

您可以做的是明确指出没有其他表与子表有 FK 关系,它由父表“拥有”,并且当从关系中删除实体时,Ebean 可以完全删除该实体。这是通过在 Parentchildren 属性上添加一个 @PrivateOwned 注释来完成的。

这篇文章提示我:https://groups.google.com/forum/?fromgroups=#!topic/ebean/dXPWpJCQkj8

关于java - Play 2.0。伊 bean 。 OneToMany 孤儿删除坏了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15500706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com