我有简单的OneToOne关系:
数据 < - >TherapyResultJPA 2.0外键约束
我想表达以下约束 与JPA。
- 如果如果TherapyResult实体被移除的数据实体获取删除相关TherapyResult应该被删除,太
- 相关数据实体应保持在DB
第一个约束与JPA非常容易,因为我可以添加CascadingType.REMOVE
@OneToOne(cascade = { CascadeType.REMOVE, CascadeType.REFRESH })
private TherapyResult therapyResult;
对于第二个约束我想补充像
@JoinColumn(columnDefinition = "DATA_ID BIGINT CONSTRAINT THERAPYRESULTDTAID FOREIGN KEY (DATA_ID) REFERENCES DATA (ID) ON DELETE SET NULL")
东西但是这不工作。 OpenJPA似乎有些相似之处,但我想使用JPA 2.0和EclipseLink。 OpenJPA ForeignKey。
另一种解决方案是使用@PreRemovedescribed here,它工作但对我来说看起来有点“无最佳实践”。然而,只是一种感觉。
我的设置是: 的Eclipse 3.7.1 的EclipseLink 2.3 的Apache Derby 10.8.3和/或HSQLDB
任何帮助表示赞赏, 缪奇
这似乎并不有效,因为JPA 2.1:HTTPS://docs.jboss。 org/hibernate/jpa/2.1/api/javax/persistence/ForeignKey.html – Piohen 2014-10-08 10:37:47