A friendly place for programming greenhorns!
Big Moose Saloon
Register / Login
Unable to create many-to-one mapping
Joined: Sep 10, 2008
Oct 07, 2008 00:51:00
I am using
to create two tables in MYSQL and then insert data into these two tables. The tables are named as Publisher and Book. For each row in table Publisher there could be multiple rows in table Book.
The code looks like the folowing:
pstmt1 = null;
pstmt2 = null;
pstmt3 = null;
pstmt4 = null;
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/hibernatetutorial?" +
pstmt1 = conn.prepareStatement("CREATE Table Publisher(ID bigint(20) primary key,CODE varchar(4),PUBLISHER_NAME varchar(100),ADDRESS varchar(200))");
boolean check1 = pstmt1.execute();
pstmt2 = conn.prepareStatement("CREATE Table Book(ID bigint(20),ISBN varchar(50),BOOK_NAME varchar(100),PUBLISH_DATE date,PRICE int(11),PUBLISHER_ID bigint(20),foreign key(PUBLISHER_ID) REFERENCES Publisher(ID))");
boolean check2 = pstmt2.execute();
pstmt3 = conn.prepareStatement("INSERT INTO Publisher values(?,?,?,?)");
boolean check3 = pstmt3.execute();
pstmt4 = conn.prepareStatement("INSERT INTO Book values(?,?,?,?,?,?)");
Date date = Date.valueOf("03-10-2008");
boolean check4 = pstmt4.execute();
When i execute this program,however, i am getting the following message:
Duplicate key or integrity constraint violation message from server: "Cannot add or update a child row: a foreign key constraint fails (`hibernatetutorial/book`, CONSTRAINT `book_ibfk_1` FOREIGN KEY (`PUBLISHER_ID`) REFERENCES `publisher` (`ID`))"
What could have gone wrong ? Kindly help.
Joined: Apr 29, 2008
Oct 07, 2008 01:03:00
PUBLISHER_ID in Book is a foreign key to ID of Publisher.
Any record you are inserting in Book should have corresponding record in Publisher.
In your case:-
publisher_id value is 5 but there is no record in Publisher table with ID having value 5.
I think this is the reason for this error.
Joined: Sep 10, 2008
Oct 07, 2008 01:18:00
Okay, thanks Bittoo. I changed 5 to 1 and it's working now.
Joined: Aug 15, 2004
Oct 07, 2008 01:58:00
Bittoo doesn't sound like your genuine name, its more like a nick or fictitious name.
It is sorta covered in the
JavaRanch Style Guide
subject: Unable to create many-to-one mapping
Auto Commit option fails to work
Help. Problem inserting Clob into Oracle 9i
Hibernate is driving me crazy !
Exception in Deleting Parent and Child entity
IS NULL Test in PrepareStatement
All times are in JavaRanch time: GMT-6 in summer, GMT-7 in winter
| Powered by
Copyright © 1998-2013