Bonjour,
Est-il possible de dire a hibernate de mettre a null le foreignkey du fils lors de suppression du père à la place de delete on cascade
Bonjour,
Est-il possible de dire a hibernate de mettre a null le foreignkey du fils lors de suppression du père à la place de delete on cascade
Dans ce cas il ne faut pas utiliser le cascade all ; c'est un problème de fichier de mapping.
pour les classes en mémoire, c'est à toi de faire le boulot. Pour les fils, si c'est du many to many et t'as pas activé le delete-orphan, hibernate devrais pas supprimer les fils. Comme mentionné aussi, gaffe au "on delete cascade" de la db![]()
La relation semble plutôt une one-to-many puisque les enfants ont un FK vers leur père qui doit donc être unique. Donc au final, si je comprend bien la question de engineer_Dz, il faudrait laisser ces orphelins dans la base coupés de tout parent. Donc, comme indiqué dans la doc http://www.hibernate.org/hib_docs/v3...child-cascades il faut explicitement détacher les enfants du parent avant de le supprimer.
Il n'est pas possible à ma connaissance de pluger un mécanisme personnalisé de gestion des cascades.
Il devrait toutefois être possible d'implémenter un Interceptor qui fasse ce travail. Mais j'aurais tendance à le coder explicitement dans un service, afin que le comportement soit clairement identifié dans les sources.
Partager