関連する RecordNotification を指すプロパティを Record に追加する必要があります。次に、カスケード削除としてマークできます。このような:
@Entity
public class Record {
@Id
private int id;
@OneToOne(mappedBy="record", cascade={CascadeType.REMOVE})
private RecordNotification notification;
public Record(int id) {
this.id = id;
}
protected Record() {}
}
@Entity
public class RecordNotification {
@Id
private int id;
@OneToOne
private Record record;
public RecordNotification(int id, Record record) {
this.id = id;
this.record = record;
}
protected RecordNotification() {}
}
生成された DDL は次のとおりです。
create table Record (
id integer not null,
primary key (id)
);
create table RecordNotification (
id integer not null,
record_id integer,
primary key (id)
);
alter table RecordNotification
add constraint FKE88313FC6EE389C1
foreign key (record_id)
references Record;
これが機能することを確認しました: と を作成しRecord
、RecordNotification
コミットしてから を削除し、 がRecord
なくなることに注意してくださいRecordNotification
。
Hibernate 4.1.4.Final を使用しました。これでうまくいかない場合は、EclipseLink のバグまたは誤動作が疑われます。