I have simple OneToOne relationship:
Data <-> TherapyResult
I would like to express the following constraints with JPA.
- If a Data entity gets removed the associated TherapyResult should be delete,too
- If a TherapyResult entity gets removed the associated Data entity should remain in the db
The first constraint is really easy with JPA as I can add CascadingType.REMOVE
@OneToOne(cascade = { CascadeType.REMOVE, CascadeType.REFRESH })
private TherapyResult therapyResult;
For the second constraint I would like to add something like
@JoinColumn(columnDefinition = "DATA_ID BIGINT CONSTRAINT THERAPYRESULTDTAID FOREIGN KEY (DATA_ID) REFERENCES DATA (ID) ON DELETE SET NULL")
However this does not work. OpenJPA seems to have something similiar, but I want to use JPA 2.0 and EclipseLink. OpenJPA ForeignKey.
Another solution would be using @PreRemove described here, which works but looks a bit "none-best-practices" to me. However just a feeling.
My setup is: Eclipse 3.7.1 EclipseLink 2.3 Apache Derby 10.8.3 and/or HSQLDB
any help is appreciated, Muki