Mysql
 sql >> Database >  >> RDS >> Mysql

JPA + Ibernazione:come definire un vincolo con ON DELETE CASCADE

JPA offre la possibilità di cascata operazioni (unione, persistenza, aggiornamento, rimozione) alle entità associate. La logica è in JPA e non utilizza le cascate di database.

@OneToMany(cascade=CascadeType.REMOVE)

Non esiste un modo conforme allo standard JPA per eseguire cascate con cascate di database. Se si preferiscono tali cascate, dobbiamo ricorrere al costrutto specifico di Hibernate:@ Su Elimina . Funziona con @OneToMany almeno, ma in passato c'erano dei problemi con @OneToOne e @OnDelete .

@OnDelete(action = OnDeleteAction.CASCADE)

Tieni presente che l'aggiunta di questa annotazione a un vincolo esistente non lo aggiornerà. Potrebbe essere necessario prima eliminarlo manualmente per aggiornare correttamente lo schema.