• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Getting an error when trying to insert data

 
Harjit Singh
Ranch Hand
Posts: 77
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi there,

I have 2 tables and one of them has a foreign key on the other table. I insert the data in to the first table which gets inserted properly. When I try to insert data in the child table which has a foreign key on the first table, I get an error saying parent key not found... here is the dump. I Cannot understand as to why this happen when the data which is a foreign key is already inserted...

Caused by: com.nasd.fms.framework.database.DaoException: Exception in HibernateDao.insert()!
at com.nasd.fms.framework.database.HibernateDao.insert(HibernateDao.java:250)
at com.nasd.fms.framework.database.HibernateDao.insert(HibernateDao.java:220)
at com.nasd.mrdt.MRDTMappingDriver.prepareDataForSavings(MRDTMappingDriver.java:90)
at com.nasd.fms.xread.MappingManagerImpl.Transform(MappingManagerImpl.java:145)
... 20 more
Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:301)
at $Proxy0.flush(Unknown Source)
at com.nasd.fms.framework.database.HibernateDao.insert(HibernateDao.java:239)
... 23 more
Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (NMAOWNER.SYS_C002743) violated - parent key not found

at oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:458)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:4105)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
 
Paras Jain
Ranch Hand
Posts: 138
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Looks like there is some problem in the hibernate mapping file. Please post the contents of the hbm mapping files for parent and child object
 
Harjit Singh
Ranch Hand
Posts: 77
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I actually got it... The relationship had to defined using a different approach

I had to use this

<composite-id>
<key-property
name="indvlCrdNb"
column="INDVL_CRD_NB"
type="java.lang.Long"
length="10"
/>
<!-- bi-directional many-to-one association to ApplicantFirm -->
<key-property
name="firmCrdNb"
column="FIRM_CRD_NB"
type="java.lang.Integer"
length="8"
/>
<key-property
name="flngSeqNb"
column="FLNG_SEQ_NB"
type="java.lang.Integer"
length="8"
/>
</composite-id>
<!-- bi-directional many-to-one association to ApplicantFirm -->
<many-to-one
name="applicantFirm"
class="com.nasd.fms.framework.database.hibernate.pojo.ApplicantFirm" insert="false" update="false">
<column name="FIRM_CRD_NB" />
<column name="FLNG_SEQ_NB" />
</many-to-one>

instead ofusing key-many-to-one...
 
Rashid Darvesh
Ranch Hand
Posts: 189
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hello
Have a look at these use cases
http://www.makemyinfo.com/Tutorial.do?action=getTutorial&tutId=T0005.jsp
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic