私は設計とシナリオのエンティティを持っています。 1つ以上のシナリオを含むデザインを削除するときにエラーが発生します。あなたはデザインが複数のシナリオを持つことができます見ることができるように親行を削除または更新できませんHibernate
@Entity
public class Scenario {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
private String name;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "design_ID")
private Design design;
:シナリオのエンティティがどのように見える
@Entity
public class Design {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(columnDefinition = "LONGBLOB")
private byte[] image;
@OneToMany(mappedBy = "design", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<Scenario> ScenarioSet;
:
デザイン・エンティティは次のようになります。 デザインはその関係を担当しています。それは問題ではありません保存
Design design = this.designService.getDesignById(designID);
scenario.setDesign(design);
this.scenarioService.saveScenario(scenario);
:
私のコードでは、シナリオを保存します。シナリオには最初にIDがないので、この方法で保存しています。
エラー私が取得しています:
Cannot delete or update a parent row: a foreign key constraint fails (`db`.`scenario`, CONSTRAINT `FKqmttw6jic4aplswy08wtkj5r7` FOREIGN KEY (`design_id`) REFERENCES `design` (`id`)) 0.016 sec
これは私がデザインを削除するとき、それがカスケードされていないと思います。
、Design' '削除するコードを追加してください:所有エンティティ(
Design
)が削除されたときに、コレクション内の項目を削除するために休止状態を言うと、あなたはorphanRemoval
属性を使用する必要があります。 –