How to fix the Hibernate "object references an unsaved transient instance - save the transient instance before flushing" error

Tushar Ahirrao picture Tushar Ahirrao · Feb 20, 2010 · Viewed 675.6k times · Source

I receive following error when I save the object using Hibernate

object references an unsaved transient instance - save the transient instance before flushing

Answer

Bozho picture Bozho · Feb 20, 2010

You should include cascade="all" (if using xml) or cascade=CascadeType.ALL (if using annotations) on your collection mapping.

This happens because you have a collection in your entity, and that collection has one or more items which are not present in the database. By specifying the above options you tell hibernate to save them to the database when saving their parent.