私は注釈付きのこのBeanを持っています(関連するものを示しています):
@Entity
@Table(name = "Prodotti")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class Prodotto {
int id;
String codice;
double prezzo;
double prezzoCanone;
String descrizione;
String note;
Prodotto prodottoDiRiferimento;
...
@ManyToOne(cascade = CascadeType.REMOVE)
public Prodotto getProdottoDiRiferimento() {
return prodottoDiRiferimento;
}
public void setProdottoDiRiferimento(Prodotto prodottoDiRiferimento) {
this.prodottoDiRiferimento = prodottoDiRiferimento;
}
}
すべて mySQL にマップされます。
prodottoDiRiferimento プロパティが null に設定されているこれらの Bean の 1 つを削除し、他の Bean は prodottoDiRiferimento を持っている場合、次のようになります。
java.sql.BatchUpdateException: Cannot delete or update a parent row: a foreign key constraint fails (`jacciseweb`.`prodotti`, CONSTRAINT `FKC803BB11ACD3B812` FOREIGN KEY (`prodottoDiRiferimento_ID`) REFERENCES `prodotti` (`ID`))
私が望むのは、prodottoDiRiferimento プロパティを持つ削除されたものを指すすべての Bean も削除されることです。
どうやってするの?