【发布时间】:2012-11-02 05:08:10
【问题描述】:
这个问题与this 有关,因为我在孩子和父母之间有一个单向的@ManyToOne 关系。有数十万个子条目,我不希望父级与子级有@OneToMany 关系。
除了删除父级是不可能的之外,一切都很好,除非我先删除子级,我希望通过ON DELETE CASCADE 轻松实现 Postgres 提供的功能。我正在使用 Postgres 9。我也在使用 JPA 2.0/Hibernate 4.1.7。
我目前正在使用Hibernate的自动DDL创建功能,因为我经常移动东西,所以我不想在表格上手动添加ON DELETE CASCADE,因为它们将在下一轮我被删除做一些改变。
有什么方法可以将ON DELETE CASCADE 约束/触发器作为JPA @ManyToOne 注释的一部分放在子实体中?这样数据库就自动正确创建了。
【问题讨论】:
-
JPA 标准
@OneToMany(..., orphanRemoval=true)是正常的解决方案 (stackoverflow.com/q/306144/398670)。你不能/不想使用它,所以你正在寻找替代品。对吗? -
OP 询问
@ManyToOne并特别避免添加逆@OneToMany... -
@CraigRinger 不,我不想使用
@OneToMany。就我而言,我经常有数百万行与父级关联。我从来不需要让所有孩子都成为父母自上而下的情况。我不想为这种情况添加@OneToMany。 -
我是这么想的;我想确认这一点,并明确“记录在案”对于发现此问题的其他人来说,标准方法是什么。
标签: java hibernate postgresql jpa jpa-2.0