This week's book giveaway is in the Agile and other Processes forum. We're giving away four copies of The Mikado Method and have Ola Ellnestam and Daniel Brolund on-line! See this thread for details.
hibernate - insert object failed because of foreing key violation
Lee Lifshits
Greenhorn
Joined: Apr 17, 2008
Posts: 1
posted
0
Hello all - I have a a table events that generates it's primary key. This table has another table (insertion_string) that associated to it with a foreign key. My DB is postgres.
When I try to insert a new event object I get the error :
insert or update on table "insertions_string" violates foreign key constraint "insertions_string_event_id_fkey" Detail: Key (event_id)=(0) is not present in table "events".
I think this is because hibernate try to insert to the foreign key table (insertion_string) before inserting to the events table ( the one with the primary key) Please help me to solve this
You, try putting the inverse="true" into the InsertionsString side of the relationship.
This is a very common issue that everyone seems to have happen to them. It seems to be more logical that the inverse would be on the one side of a many to one, but to get what we expect, parents getting inserted before their children, requires the inverse="true" to be on the Many side of the relationship.
If you think of it this way, wherever you put the inverse, Hibernate will think, ok, so this is the same relationship that is modeled in the other side, and lets use that mapping as the controlling force of this relationship. So by having it in the Many side, it puts the parent in control of the relationship, since after all it is responsible for creating its children. Unless it is by immaculate conception.
Mark [ April 17, 2008: Message edited by: Mark Spritzler ]