当前位置: 首页 > 面试题库 >

Java JPA CascadeType.ALL不删除孤立项

林富
2023-03-14
问题内容

我在使用带有以下映射的JPA删除孤立节点时遇到问题

@OneToMany (cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "owner")
private List<Bikes> bikes;

我遇到了孤立角色挂在数据库周围的问题。

我可以使用org.hibernate.annotations.Cascade特定于注释的Hibernate标记,但是显然我不想将解决方案绑定到Hibernate实现中。

编辑:似乎JPA 2.0将包括对此的支持。


问题答案:

如果将它与Hibernate一起使用,则必须显式定义批注CascadeType.DELETE_ORPHAN,该批注可与JPA结合使用CascadeType.ALL

如果你不打算使用Hibernate,则必须先明确删除子元素,然后再删除主记录,以避免出现任何孤立记录。

执行顺序

  1. 获取要删除的主行
  2. 获取子元素
  3. 删除所有子元素
  4. 删除主行
  5. 闭门会议

在JPA 2.0中,你现在可以使用选项orphanRemoval = true

@OneToMany(mappedBy="foo", orphanRemoval=true)


 类似资料:
  • 本文向大家介绍nhibernate 全部删除孤立项,包括了nhibernate 全部删除孤立项的使用技巧和注意事项,需要的朋友参考一下 示例 保存/更新/删除对象时,请检查关联并保存/更新/删除找到的所有对象。除此之外,当一个对象从关联中删除并且不与另一个对象(孤立的)关联时,也将其删除。

  • 以以下两个表格为例: 和 主键和。 我需要删除任何没有相关的。大约有3MM和25MM记录。 我正在尝试以下两个问题: 正如您所看到的,即使不删除任何记录,两个查询都会在大约3分钟内显示类似的性能。 服务器磁盘I/O峰值达到100%,因此我假设数据正在溢出到磁盘,因为对和都进行了顺序扫描。 服务器是EC2r3.large(15GB RAM)。 我能做些什么来优化这个查询呢? 在为两个表运行并确保设置

  • 问题内容: 有没有人解决此问题:https : //hibernate.atlassian.net/browse/HHH-9663? 我也面临着类似的问题。当我在两个实体之间创建单面(无反向引用)一对一关系并将孤立删除属性设置为true时,将引用设置为null后,引用的对象仍在数据库中。 这是示例域模型: 我目前正在通过手动删除孤儿来解决此问题。 问题答案: 级联仅对从 父级 传播到 子级的 实体

  • 问题内容: 我正在尝试清理有很多孤立物品的桌子。 我正在通过查找空值来检查是否与另一个表有关系,从而达到这一目的。 我收到一个错误,左外部联接无效。 我正在寻找其他方法的建议,可以从这种破裂的关系中删除这些孤儿 问题答案: 试试这个:

  • 我试图在类别和发布类(OneToMany)之间建立关系,我需要删除所有属于特定类别的发布。我不知道我是否遗漏了一些注释,但这是我在执行查询时的错误: org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常org.hibernate.exception.ConstraintViolationException:无法执行更新查询o

  • 问题内容: 我在使用具有以下映射的JPA删除孤立节点时遇到问题 我遇到了孤立角色挂在数据库周围的问题。 我可以使用特定于注释的Hibernate标记,但是显然我不想将解决方案绑定到Hibernate实现中。 编辑 :似乎JPA 2.0将包括对此的支持。 问题答案: 如果将它与Hibernate一起使用,则必须显式定义批注,该批注可与JPA结合使用。 如果您不打算使用Hibernate,则必须先明确