私はJPA2とHibernateの実装を使用しています。
私はこのような単純なマッピングを持っています:
@Entity
class Topic {
@Id
@GeneratedValue(strategy = IDENTITY)
int id;
@OneToOne(cascade = ALL)
@JoinColumn(name = "id_poll")
private Poll poll;
}
@Entity
class Poll {
@Id
@GeneratedValue(strategy = IDENTITY)
int id;
}
ここで、トピックにもあるPollオブジェクトを削除すると、エラーが発生します。
java.sql.SQLException:整合性制約違反FKCC42D924982D3F4Bテーブル:ステートメント内のトピック[id =?のポーリングから削除]
別のテーブルに参照がある場合、ポーリングレコードを削除できないためだと理解しています。どうすればこの問題を解決できますか?トピックテーブルでpoll=nullを手動で設定する必要がありますか、それともより良い解決策がありますか?