dire che ho un unidirezionale@ManyToOne
rapporto come la seguente:JPA: unidirezionale molti-a-uno e cascata eliminare
@Entity
public class Parent implements Serializable {
@Id
@GeneratedValue
private long id;
}
@Entity
public class Child implements Serializable {
@Id
@GeneratedValue
private long id;
@ManyToOne
@JoinColumn
private Parent parent;
}
Se ho un genitore P e bambini C ... C n riferimento torna a P, c'è un modo pulito e abbastanza in APP a rimuovere automaticamente i bambini C ... C n quando P viene rimossa (cioè entityManager.remove(P)
)?
Quello che sto cercando è una funzionalità simile a ON DELETE CASCADE
in SQL.
Anche se solo "Bambino" ha un riferimento a "Padre" (in questo modo il riferimento è unidirezionale) è problematico aggiungere l'Elenco di "Bambino" con una mappatura "@OneToMany" e "Cascata = ALL" 'attributo al' Genitore '? Suppongo che l'APP dovrebbe risolvere il problema anche se solo 1 lato dura detiene il riferimento. – kvDennis
@kvDennis, ci sono casi in cui non si desidera accoppiare strettamente il lato multiplo di un lato. Per esempio. in configurazioni tipo ACL dove le autorizzazioni di sicurezza sono trasparenti "add-on" – Bachi