首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JPA OneToMany不删除子对象

JPA OneToMany不删除子对象
EN

Stack Overflow用户
提问于 2010-01-06 15:37:59
回答 7查看 164.9K关注 0票数 176

对于父实体和子实体之间的简单@OneToMany映射,我遇到了一个问题。所有的工作都很好,只是当我从集合中删除子记录时,它们不会被删除。

父级:

代码语言:javascript
运行
复制
@Entity
public class Parent {
    @Id
    @Column(name = "ID")
    private Long id;

    @OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
    private Set<Child> childs = new HashSet<Child>();

 ...
}

孩子:

代码语言:javascript
运行
复制
@Entity
public class Child {
    @Id
    @Column(name = "ID")
    private Long id;

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name="PARENTID", nullable = false)
    private Parent parent;

  ...
}

如果我现在从childs集合中删除and child,它不会从数据库中删除。我尝试将child.parent引用设为空,但也不起作用。

实体在web应用程序中使用,删除操作作为Ajax请求的一部分发生。当按下保存按钮时,我没有删除的孩子的列表,所以我不能隐式删除它们。

EN

Stack Overflow用户

发布于 2010-01-06 17:49:55

除了cletus的答案之外,JPA 2.0自2010年12月以来的最终版本,在@OneToMany注释上引入了orphanRemoval属性。有关更多详细信息,请参阅此blog entry

请注意,由于该规范相对较新,并不是所有的JPA1提供者都有最终的JPA2实现。例如,Hibernate 3.5.0-Beta-2 release尚不支持此属性。

票数 83
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2011519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档