On delete set null en veille prolongée dans @OneToMany
J'ai un Département de l'entité qui les relations sont comme suit:
- De nombreux ministères peut être dans un parent ministère:
@ManyToOne @JoinColumn(name = "ik_parent_department_id") private Department parentDepartment;
- Un parent ministère peut avoir de nombreux ministères:
@OneToMany(mappedBy = "parentDepartment") private Set<Department> children = new HashSet<Department>(0);
Et je veux mettre en œuvre le suivant: Quand je supprimer un département, puis le ik_parent_department_id paramètre de tous les enfants de cette département est fixé à null. Toutes les idées de comment faire cela?
double possible de Ont JPA/Hibernate à reproduire le "on DELETE SET NULL" fonctionnalité
OriginalL'auteur Mahmoud Saleh | 2011-11-23
Vous devez vous connecter pour publier un commentaire.
Vous devrez mettre les enfants
ik_parent_department_id
null explicitement.Avec cascade, vous ne gérer à supprimer l'enfant
Departments
.Non, il n'est pas. Il est possible de configurer la fk dans la db pour ce faire, dans certaines bases de données, mais le soutien est limité. E. g. avec sql server, vous rencontrez des problèmes avec le cercle de référence pour la mise en œuvre de la logique dans le code ressemble proposé. Voir aussi: stackoverflow.com/questions/9944137/...
OriginalL'auteur Xavi López
Code:
OriginalL'auteur JB Nizet
Avec JPA, parent
Entity
vous pourriez avoir quelque chose commeet pour éviter de répéter "set null code" & violation de l'intégrité exceptions à la mère de suppression de mettre en œuvre dans le parent
Entity
aussiOriginalL'auteur pirho