CF ORM – A collection with cascade=”all-delete-orphan” was no longer referenced by the owning entity instance
HibernateException – A collection with cascade=”all-delete-orphan” was no longer referenced by the owning entity instance
This is really cryptic and most likely you have a parent to child relationship and you are most likely wiping or wanting to wipe all the references of the child. We usually can do this via:
// wipe out the children
parent.setChildren( [] )
We then proceed to maybe put more children into the collection:
parent.addChild( objX );
parent.addChild( objY );
// Now save
transaction{
entitySave( parent );
}
This is where you get that magical Hibernate error. The issue is that the existing collection is now de-referenced, you completely wiped it so Hibernate has no clue what to do with it. So to resolve this, just clear the collection instead and voila!
// use java
parent.getChildren().clear();
// or use CF
arrayClear( parent.getChildren() );
That's it, this tells Hibernate that the collection is removed first and then you added some more children.