我在JPA中使用了以下内容:
@Entity
class ParentClass {
@Id
@GeneratedValue
private long id;
...
@OneToOne(cascade = { cascade = { CascadeType.ALL },
mappedBy = "parentClass")
ChildClass child;
..
}
@Entity
class ChildClass {
@OneToOne
ParentClass parentClass;
}如果我执行类似createQuery("DELETE FROM ParentClass pc")这样的查询,我的子类不会自动删除。
使用JPA-2.0可以做到这一点吗?(我确实使用@OneToMany关系)。
发布于 2011-02-10 22:57:06
批量DELETE FROM ParentClass pc查询会忽略级联选项和orphanRemoval,因此如果您确实需要在批量查询中执行此操作,则不能将ChildClass配置为自动删除JPA es。
但是,您可以通过向数据库架构中ChildClass的前置键添加REFERENCES ... ON DELETE CASCADE约束来配置数据库来执行此操作。
发布于 2011-02-10 22:44:33
在JPA2中,您可以在@OneToOne注释上设置orphanRemoval = true。然而,我想说的是,CascadeType.ALL应该处理这个问题。如果调用em.remove(parentClass)而不是query会怎么样?
https://stackoverflow.com/questions/4958437
复制相似问题