1

レポート/履歴目的でデータベースに保持したいので、関連する OutboundMessage エンティティを削除せずに患者エンティティを削除しようとしています。これは関連するコードです:

患者エンティティ

@OneToMany (mappedBy="patient", fetch = FetchType.EAGER,orphanRemoval = false)
public Set<OutboundMessage> getOutboundMessages() 
{
    return outboundMessages;
}

OutboundMessage エンティティ

@ManyToOne (fetch=FetchType.EAGER)
@JoinColumn(name = "id_patient")
public Patient getPatient() 
{
    return patient;
}

患者側でカスケード タイプを設定すると、レコードが削除されますが、これは私が望むものではありません。上記のコードに示すように (カスケード型を使用せずに) 試行すると、次の例外が発生します。

The DELETE statement conflicted with the REFERENCE constraint "FKqjpga9w6wp3qk26ox9pg252d9". The conflict occurred in database "MDHIS", table "dbo.tblOutboundMessage", column 'id_patient'.

所有エンティティは、子エンティティにカスケードせず、孤立したレコードを消去せずに削除できるようにするために、どのような設定が必要ですか?

ありがとう!

4

1 に答える 1