Pour la suppression:
Code:
parent.getEnfants().remove(index/object);
Lors du prochain flush, Hibernate détectera le changement dans la collection et prendra les mesures nécessaires.
Par contre, cela ne veut pas dire que l'enfant sera effectivement supprimé de la DB. Ceci n'est vrai que si l'enfant devient un "orphan" et que tu autorises la cascade correspondante (ce qui n'est pas inclus dans cascade-all). Tu peut également forcer toi-même la suppression via un session.delete()
Là où tu risques d'avoir un second problème c'est un "cannot insert null value" causé par le mapping enfant.parent qui semble être "mandatory". Pour ma part, le lien enfant.parent doit être indiqué comme "inverse" si tu considères que la relation parent-enfant appartient au parent (et est donc gérée via la collection correspondante) -> cfr. documentation sur le sujet "inverse mapping".
Bonne chance.