我在Web应用程序中通过Hibernate使用JPA。这是两个实体(仅显示吸气剂):
class Child {
private Parent parent;
@ManyToOne(optional=false)
@JoinColumn(name="parent_id", referencedColumnName="parent_id", nullable=false, updatable=false)
public Parent getParent() {
return parent;
}
}
class Parent {
private Collection<Child> children;
@OneToMany(fetch=FetchType.EAGER, mappedBy="parent", cascade={CascadeType.ALL})
public Collection<Child> getChildren() {
return children;
}
}
如您所见,Parent
并Child
称为“一对多”。
现在,我需要加载一个Parent
实例,删除部分或全部子代并保存更改。以下是对我不起作用的代码:
Parent p = entityManager.find(Parent.class, 12345L); // load entity
p.getChildren().clear(); // remove all children
entityManager.merge(p); // try to save
在上面的示例中未删除子实体。现在,我必须手动entityManager.remove()
为每个孩子打电话。
有没有更简单的方法来管理子代?
请注意,我不想使用特定于Hibernate的功能,只能使用纯JPA。
对于JPA 2.0你可以设置
orphanRemoval=true
的@OneToMany
对于JPA 1.0,应使用特定于hibernate的注释。这是@Cascade
注释(而不是cascade
属性),其值为
@Cascade({CascadeType.ALL, CascadeType.DELETE_ORPHAN})
Hibernate 3.5+实现JPA 2.0
问题内容: 我想使用gson删除具有空集合或空值的属性。 我打印json,我有这个: 例如,对于该json,我不想拥有集合aiAvisos,有一种方法可以将其从json中删除。我实际上正在处理很多集合,在这里我展示了一个集合,我确实需要从json中删除它们。 我需要这样的东西: 我尝试将集合设置为null,我检查了文档,也没有方法… 请任何建议。 非常感谢阅读本文的人! 问题答案: 遵循的步骤:
问题内容: 我有一个(尽管我猜这个问题也适用于其他集合)对象。据我了解,当文档讨论删除映射时,那么它就是从哈希表中删除条目,即不一定破坏实际对象。如果该表中唯一剩余的对该对象的引用,那么该对象会被垃圾回收吗? 如果我这样做了,并且表中的那些对象没有在其他任何地方引用,它们会被垃圾回收吗? 最快的方法是实际从表中删除所有条目,同时销毁那些对象。 问题答案: 是的,如果集合是最后引用这些对象的地方,则
无法从外壳中删除集合, 集合可用并且我的 php 脚本正在访问它的东西(选择|更新) 但当我使用: 它给了我一个错误:
问题内容: 当 Person 对象包含使用 @ElementCollection 存储的数据时,我在解决如何使用JPA 批量删除 Person 对象方面遇到麻烦。任何有关如何执行此操作的想法将不胜感激。 我现在正在做的是,它因外键约束错误而失败: 引起原因:java.sql.SQLException:违反完整性约束:外键无动作;FKCEC6E942485388AB表:PERSON_EMAIL 如果
本文向大家介绍如何使用Java从集合中删除多个文档?,包括了如何使用Java从集合中删除多个文档?的使用技巧和注意事项,需要的朋友参考一下 在Java中,com.mongodb.client.MongoCollection接口提供了方法deleteMany()。使用此方法,您可以一次从集合中删除多个文档,为此,您需要通过指定删除条件的过滤器。 示例 输出结果
我知道如何。。。 删除单个文档。 但我不知道如何删除Mongoose收藏中的所有文档。我想在用户单击按钮时执行此操作。我假设我需要向某个endpoint发送AJAX请求并让该endpoint进行删除,但我不知道如何在endpoint处处理删除。 在我的例子中,我有一个集合,我想在用户单击按钮时删除所有文档。 api/datetime/index.js API/datetime/datetime.c