私はSpring Data、JPA、Hibernate、およびMySQLを使用します。私はイベントとカテゴリの間に1対多の関係があります。明らかに、1つのイベントには1つのカテゴリしかなく、1つのカテゴリには多くのイベントを割り当てることができます。このカテゴリの外部キーを保持し、エラーが発生した場合、カテゴリを削除しようとすると問題が発生します。 Categoryを削除すると、Eventテーブルの外部キーをnullに設定したいと思います。現時点では、カテゴリの削除前にヌルに更新することで、コード内で明示的に外部キーを設定することによって、すべてのイベントを更新します。注釈を使用してそれを行う方法はありますか?JPAの一対多を削除し、foregnキーをnullに設定します。
これは私のカテゴリーである:
@Entity
@Table(name = "category")
public class Category implements Serializable{
@OneToMany(mappedBy="category", targetEntity=Event.class, fetch=FetchType.LAZY, cascade=
{CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
public Set<Event> getEvents_category() {
return events_category;
}
}
とイベントクラス:私はトピックが何度も議論されましたが、私はすべてのを見ていないことを見てきました
@Entity
@Table(name = "event")
public class Event implements Serializable{
@ManyToOne(cascade={CascadeType.DETACH, CascadeType.MERGE, CascadeType.PERSIST,
CascadeType.REFRESH})
@JoinColumn(name="events_dancestyle")
public DanceStyle getDanceStyle() {
return danceStyle;
}
}
それに対する解決策。
こんにちはデビッド、あなたの答えをありがとう。あなたの答えは、私が正しいことを確認しました。私はあなたが与えたリンクとまったく同じアプローチを使用しました。 – Lukasz