tags:

views:

637

answers:

1

Hi

I am new to hibernate. I am having 2 tables, assume table1 and table2 .

table2 has composite key and id column of table2 is referencing id column of table1.

I have created one to many mapping in hbm file of table1.

Wen I try to insert or update using gethibernatetemplate().saveorupdate(object)..

I am getting the following exception !!!

[ERROR] 2010-02-18 15:53:25 (JDBCExceptionReporter.java:logExceptions:78) 
 ORA-02291: integrity constraint (BANKNET.FK_DDA_DEAL_ADVISOR) violated - parent key not found

[ERROR] 2010-02-18 15:53:25 (AbstractFlushingEventListener.java:performExecutions:301) 
 Could not synchronize database state with session 
org.hibernate.exception.ConstraintViolationException: could not insert: [com.bofa.crme.dda.domain.DealAdvisor]
 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
 at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2267)
 at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2654)
 at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56)
 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
 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 org.springframework.orm.hibernate3.HibernateTemplate$27.doInHibernate(HibernateTemplate.java:811)
 at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
 at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:809)
 at com.bofa.crme.hibernate.HibernateGenericDao.persist(HibernateGenericDao.java:297)
 at com.bofa.crme.dda.dao.ManualDDADaoImpl.persistManualDDA(ManualDDADaoImpl.java:38)
 at com.bofa.crme.dda.handler.ManualDDAManagerHandlerImpl.createManualDDA(ManualDDAManagerHandlerImpl.java:62)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:585)
 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
 at $Proxy67.createManualDDA(Unknown Source)
 at com.bofa.crme.dda.ejb.ManualDDAManagerServiceBean.createManualDDA(ManualDDAManagerServiceBean.java:94)
 at com.bofa.crme.dda.ejb.ManualDDAManagerServiceSB_uns8sf_ELOImpl.createManualDDA(ManualDDAManagerServiceSB_uns8sf_ELOImpl.java:221)
 at com.bankofamerica.crme.dda.webservice.ManualDDAManagerServiceImpl.createManualDDA(ManualDDAManagerServiceImpl.java:53)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:585)
 at weblogic.wsee.component.pojo.JavaClassComponent.invoke(JavaClassComponent.java:99)
 at weblogic.wsee.ws.dispatch.server.ComponentHandler.handleRequest(ComponentHandler.java:64)
 at weblogic.wsee.handler.HandlerIterator.handleRequest(HandlerIterator.java:127)
 at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:85)
 at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
 at weblogic.wsee.server.servlet.SoapProcessor.handlePost(SoapProcessor.java:66)
 at weblogic.wsee.server.servlet.SoapProcessor.process(SoapProcessor.java:44)
 at weblogic.wsee.server.servlet.BaseWSServlet$AuthorizedInvoke.run(BaseWSServlet.java:173)
 at weblogic.wsee.server.servlet.BaseWSServlet.service(BaseWSServlet.java:92)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
 at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3231)
 at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
 at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
 at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002)
 at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908)
 at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362)
 at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
 at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Caused by: java.sql.SQLException: ORA-02291: integrity constraint (BANKNET.FK_DDA_DEAL_ADVISOR) violated - parent key not found

 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
 at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
 at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
 at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
 at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)
 at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3400)
 at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:128)
 at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
 at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2247)
 ... 54 more
[ERROR] 2010-02-18 15:53:25 (HibernateGenericDao.java:persist:301) 

org.springframework.dao.DataIntegrityViolationException: could not insert: [com.bofa.crme.dda.domain.DealAdvisor]; nested exception is org.hibernate.exception.ConstraintViolationException: could not insert: [com.bofa.crme.dda.domain.DealAdvisor]
Caused by: 
org.hibernate.exception.ConstraintViolationException: could not insert: [com.bofa.crme.dda.domain.DealAdvisor]
 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
 at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2267)
 at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2654)
 at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:56)
 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
 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 org.springframework.orm.hibernate3.HibernateTemplate$27.doInHibernate(HibernateTemplate.java:811)
 at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
 at org.springframework.orm.hibernate3.HibernateTemplate.flush(HibernateTemplate.java:809)
 at com.bofa.crme.hibernate.HibernateGenericDao.persist(HibernateGenericDao.java:297)
 at com.bofa.crme.dda.dao.ManualDDADaoImpl.persistManualDDA(ManualDDADaoImpl.java:38)
 at com.bofa.crme.dda.handler.ManualDDAManagerHandlerImpl.createManualDDA(ManualDDAManagerHandlerImpl.java:62)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:585)
 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:296)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:177)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:166)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
 at $Proxy67.createManualDDA(Unknown Source)
 at com.bofa.crme.dda.ejb.ManualDDAManagerServiceBean.createManualDDA(ManualDDAManagerServiceBean.java:94)
 at com.bofa.crme.dda.ejb.ManualDDAManagerServiceSB_uns8sf_ELOImpl.createManualDDA(ManualDDAManagerServiceSB_uns8sf_ELOImpl.java:221)
 at com.bankofamerica.crme.dda.webservice.ManualDDAManagerServiceImpl.createManualDDA(ManualDDAManagerServiceImpl.java:53)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:585)
 at weblogic.wsee.component.pojo.JavaClassComponent.invoke(JavaClassComponent.java:99)
 at weblogic.wsee.ws.dispatch.server.ComponentHandler.handleRequest(ComponentHandler.java:64)
 at weblogic.wsee.handler.HandlerIterator.handleRequest(HandlerIterator.java:127)
 at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:85)
 at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
 at weblogic.wsee.server.servlet.SoapProcessor.handlePost(SoapProcessor.java:66)
 at weblogic.wsee.server.servlet.SoapProcessor.process(SoapProcessor.java:44)
 at weblogic.wsee.server.servlet.BaseWSServlet$AuthorizedInvoke.run(BaseWSServlet.java:173)
 at weblogic.wsee.server.servlet.BaseWSServlet.service(BaseWSServlet.java:92)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
 at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3231)
 at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
 at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
 at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2002)
 at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1908)
 at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1362)
 at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
 at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
Caused by: java.sql.SQLException: ORA-02291: integrity constraint (BANKNET.FK_DDA_DEAL_ADVISOR) violated - parent key not found

 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
 at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
 at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
 at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
 at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)
 at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3400)
 at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:128)
 at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
 at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2247)
 ... 54 more
[ERROR] 2010-02-18 15:53:25 (ManualDDADaoImpl.java:persistManualDDA:41) 

...... 

sorry for making it big.. Have anyone of u came across this. Pls help me out this.

A: 

Table 1:

Table 2: BANKNET.DDA_DEAL_ID_SEQ (SELECT ddar.REASON FROM BANKNET.DDA_REASONS ddar WHERE ddar.ID = REASON_ID) (SELECT curd.CY_NM FROM IBK_DW.CURRENCY_DIM curd WHERE curd.CY_CD = CURRENCY_CD)
    <set name="dealAdvisors" inverse="true" cascade="all,all-delete-orphan" fetch="select" lazy="false">
        <key  column="DDA_DEAL_NO" on-delete="cascade"/>
        <one-to-many class="com.bofa.crme.dda.domain.DealAdvisor" />
    </set>


</class>

...........

Creating through

getHibernateTemplate().saveOrUpdate(entity);

entity is the table1 object which contains values of table2 attributes in set... pls hel me out

Senthilnathan