2011-02-10 12 views
1

上の注釈やエラー、私は(該当するものを示す)の注釈でこのBeanをしました:Hibernateは多対一の削除

@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に設定し、それらがprodottoDiRiferimentoとして、他の豆が持っているこれらのBeanの1の削除を行う場合は、私が手に:私が好きな何

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も削除されます。

どうすればよいですか?

答えて

1

を使用すると、逆@OneToMany関係はあなたが行う場合は、あなたがする必要がある必要があり、すべてが親を削除し、子どもたちは、すべて削除する必要がある

@OneToMany(mappedBy = "prodottoDiRiferimento", cascade = CascadeType.REMOVE) 

として宣言されていません。

関連する問題