Hi All.
I am new to hibernate and currently working on a hibernate project.
Version : 3.0.5
I had a pojo classes ConatctDO and AddressDO as below :
ContactDO
public class CompanyDO{
/** Primary key of the comapny is companyID */
private long companyId;
/** represents companyName*/
private String companyName;
/** represents companyAddress*/
private AddressDO companyAddress;
public CompanyDO() {
}
/**
* @hibernate.id column="COMPANY_ID" unsaved-value="null" generator-class="sequence"
* @hibernate.generator-param name="sequence" value="TBL_TDN_COMPANY_S"
*
* @return Returns the addressId.
*/
public long getCompanyId() {
return companyId;
}
/**
* @param companyID The companyID to set.
*/
public void setCompanyId(long companyId) {
this.companyId = companyId;
}
/**
* @hibernate.property column="COMPANY_NAME"
* @return Returns the companyName.
*/
public String getCompanyName() {
return companyName;
}
/**
* @param companyName The companyName to set.
*/
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
/**
* @hibernate.many-to-one column="ADDRESS_ID" name="companyAddress" cascade = "save-update" class="AddressDO"
* @return Returns the companyAddress.
*/
public AddressDO getCompanyAddress() {
return companyAddress;
}
/**
* @param companyAddress The companyAddress to set.
*/
public void setCompanyAddress(AddressDO companyAddress) {
this.companyAddress = companyAddress;
}
}
Address DO:
public class AddressDO{
/** The Primary key of the address is addressID */
private long addressId;
/** represents addressone*/
private String addressOne;
/**
* Simple constructor of AddressDO instances.
*/
public AddressDO() {
}
/**
* @hibernate.id column="ADDRESS_ID" unsaved-value="null" generator-class="sequence"
* @hibernate.generator-param name="sequence" value="TBL_TDN_ADDRESS_S"
*
* @return Returns the addressId.
*/
public long getAddressId() {
return addressId;
}
/**
* Set the value of the ADDRESS_ID column.
*
* @param addressId
* addressId to be set
*/
public void setAddressId(long addressId) {
this.addressId = addressId;
}
/**
* @hibernate.property column="ADDRESS_ONE"
* @return Returns the addressOne.
*/
public String getAddressOne() {
return addressOne;
}
/**
* Set the value of the addressOne column.
*
* @param addressOne
* addressOne to be set
*/
public void setAddressOne(String addressOne) {
this.addressOne = addressOne;
}
}
Generated mapping classes are as below:
Company.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
>
<class
name="CompanyDO"
table="TBL_TDN_COMPANY"
>
<id
name="companyId"
column="COMPANY_ID"
type="long"
unsaved-value="null"
>
<generator class="sequence">
<param name="sequence">TBL_TDN_COMPANY_S</param>
<!--
To add non XDoclet generator parameters, create a file named
hibernate-generator-params-CompanyDO.xml
containing the additional parameters and place it in your merge dir.
-->
</generator>
</id>
<many-to-one
name="companyAddress"
class="AddressDO"
cascade="save-update"
outer-join="auto"
update="true"
insert="true"
column="ADDRESS_ID"
/>
<property
name="companyName"
type="java.lang.String"
update="true"
insert="true"
column="COMPANY_NAME"
/>
</class>
</hibernate-mapping>
Address.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
>
<class
name="AddressDO"
table="TBL_TDN_ADDRESS"
>
<id
name="addressId"
column="ADDRESS_ID"
type="long"
unsaved-value="null"
>
<generator class="sequence">
<param name="sequence">TBL_TDN_ADDRESS_S</param>
<!--
To add non XDoclet generator parameters, create a file named
hibernate-generator-params-AddressDO.xml
containing the additional parameters and place it in your merge dir.
-->
</generator>
</id>
<property
name="addressOne"
type="java.lang.String"
update="true"
insert="true"
column="ADDRESS_ONE"
/>
</class>
</hibernate-mapping>
Code I have in DAO class is as below:
boolean isSaved = true;
Session session = this.getHibernateSession();
Transaction tx = session.beginTransaction();
try {
session.saveOrUpdate(companyDO);
session.flush();
tx.commit();
isSaved = true;
} catch (Exception e) {
tx.rollback();
isSaved = false;
throw new Exception(e);
} finally {
session.close();
}
Full stack trace of any exception that occured is as below:
2006-05-07 16:58:12,608 5419750 INFO [STDOUT] (TP-Processor2:) Hibernate: insert into TBL_TDN_COMPANY (COMPANY_ID, COMPANY_NAME, ADDRESS_ID) values (?, ?, ?)
2006-05-07 16:58:13,311 5420453 WARN [org.hibernate.util.JDBCExceptionReporter] (TP-Processor2:) SQL Error: 2291, SQLState: 23000
2006-05-07 16:58:13,311 5420453 ERROR [org.hibernate.util.JDBCExceptionReporter] (TP-Processor2:) ORA-02291: integrity constraint (AOUKMT.FK8A226E66E80ED9E3) violated - parent key not found
2006-05-07 16:58:13,311 5420453 WARN [org.hibernate.util.JDBCExceptionReporter] (TP-Processor2:) SQL Error: 2291, SQLState: 23000
2006-05-07 16:58:13,327 5420469 ERROR [org.hibernate.util.JDBCExceptionReporter] (TP-Processor2:) ORA-02291: integrity constraint (AOUKMT.FK8A226E66E80ED9E3) violated - parent key not found
2006-05-07 16:58:13,327 5420469 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] (TP-Processor2:) Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:74)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:181)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
at com.bupa.app.teddies.appservice.dao.brochure.HibernateBrochureDAO.saveBrochureDetails(HibernateBrochureDAO.java:141)
at com.bupa.app.teddies.appservice.common.util.brochure.BrochureManagerImpl.saveBrochureDetails(BrochureManagerImpl.java:88)
at com.bupa.app.teddies.appservice.ejb.TeddiesServiceBean.saveBrochureDetails(TeddiesServiceBean.java:150)
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:324)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:683)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:72)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:315)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:148)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:120)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessionContainer.java:331)
at org.jboss.ejb.Container.invoke(Container.java:723)
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:324)
at org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:97)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:53)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:100)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
at $Proxy82.saveBrochureDetails(Unknown Source)
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:324)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:402)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:309)
at org.jboss.net.axis.server.EJBProvider.processMessage(EJBProvider.java:260)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:333)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:481)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:880)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:72)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:275)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:297)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:371)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:731)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:663)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:859)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (AOUKMT.FK8A226E66E80ED9E3) violated - parent key not found
at oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:459)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:4210)
at org.jboss.resource.adapter.jdbc.WrappedStatement.executeBatch(WrappedStatement.java:756)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:57)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:174)
... 89 more
2006-05-07 16:58:13,608 5420750 ERROR [com.bupa.app.teddies.appservice.dao.brochure.HibernateBrochureDAO] (TP-Processor2:) org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
2006-05-07 16:58:13,624 5420766 ERROR [com.bupa.app.teddies.appservice.ejb.TeddiesServiceBean] (TP-Processor2:) com.bupa.framework.common.exception.BupaDataAccessException: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
2006-05-07 16:58:13,624 5420766 ERROR [com.bupa.app.teddies.appservice.ejb.TeddiesServiceBean] (TP-Processor2:) org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
com.bupa.framework.common.exception.BupaDataAccessException: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at com.bupa.app.teddies.appservice.dao.brochure.HibernateBrochureDAO.saveBrochureDetails(HibernateBrochureDAO.java:150)
at com.bupa.app.teddies.appservice.common.util.brochure.BrochureManagerImpl.saveBrochureDetails(BrochureManagerImpl.java:88)
at com.bupa.app.teddies.appservice.ejb.TeddiesServiceBean.saveBrochureDetails(TeddiesServiceBean.java:150)
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:324)
at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:683)
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:72)
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:315)
at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:148)
at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:120)
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
at org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessionContainer.java:331)
at org.jboss.ejb.Container.invoke(Container.java:723)
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:324)
at org.jboss.mx.server.ReflectedDispatcher.dispatch(ReflectedDispatcher.java:60)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:61)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:53)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:185)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:473)
at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:97)
at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90)
at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:53)
at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:100)
at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
at $Proxy82.saveBrochureDetails(Unknown Source)
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:324)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:402)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:309)
at org.jboss.net.axis.server.EJBProvider.processMessage(EJBProvider.java:260)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:333)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:481)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:880)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:72)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:275)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:297)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:371)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:731)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:663)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:859)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:74)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:181)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
at com.bupa.app.teddies.appservice.dao.brochure.HibernateBrochureDAO.saveBrochureDetails(HibernateBrochureDAO.java:141)
... 83 more
Caused by: java.sql.BatchUpdateException: ORA-02291: integrity constraint (AOUKMT.FK8A226E66E80ED9E3) violated - parent key not found
at oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:459)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:4210)
at org.jboss.resource.adapter.jdbc.WrappedStatement.executeBatch(WrappedStatement.java:756)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:57)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:174)
... 89 more
2006-05-07 16:58:15,202 5422344 ERROR [com.bupa.app.teddies.applite.delegate.brochure.BrochureDelegateImpl] (TP-Processor3:) Problems with underlying datastore
AxisFault
faultCode: Client
faultSubcode:
faultString: Problems with underlying datastore
faultActor:
faultNode:
faultDetail:
{}string: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
Problems with underlying datastore
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169)
at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.encoding.DeserializationContextImpl.parse(DeserializationContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at org.apache.axis.client.Call.invokeEngine(Call.java:2583)
at org.apache.axis.client.Call.invoke(Call.java:2553)
at org.apache.axis.client.Call.invoke(Call.java:2248)
at org.apache.axis.client.Call.invoke(Call.java:2171)
at org.apache.axis.client.Call.invoke(Call.java:1691)
at org.apache.axis.client.AxisClientProxy.invoke(AxisClientProxy.java:186)
at $Proxy70.saveBrochureDetails(Unknown Source)
at com.bupa.app.teddies.applite.services.BUPATeddiesServiceImpl.saveBrochureDetails(BUPATeddiesServiceImpl.java:67)
at com.bupa.app.teddies.applite.delegate.brochure.BrochureDelegateImpl.saveBrochureDetails(BrochureDelegateImpl.java:101)
at com.bupa.app.teddies.applite.action.brochure.BrochureAction.saveBrochureDetails(BrochureAction.java:199)
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:324)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:276)
at org.apache.struts.actions.LookupDispatchAction.execute(LookupDispatchAction.java:162)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at com.bupa.fwk.applite.action.BupaRequestProcessor.process(BupaRequestProcessor.java:86)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at com.bupa.fwk.applite.filter.UserSessionExpiryFilter.doFilter(UserSessionExpiryFilter.java:74)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:72)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:275)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:297)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:371)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:731)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:663)
at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:859)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Database is Oracle and I am not sure about the version
The generated SQL (show_sql=true):
insert into TBL_TDN_COMPANY (COMPANY_ID, COMPANY_NAME, ADDRESS_ID) values (?, ?, ?)
generated sql script from hbm.xml files are
drop table TBL_TDL_CONTACT cascade constraints;
drop table TBL_TDN_COMPANY cascade constraints;
drop sequence TBL_TDN_ADDRESS_S;
drop sequence TBL_TDN_COMPANY_S;
create table TBL_TDN_ADDRESS (
ADDRESS_ID number(19,0) not null,
ADDRESS_ONE varchar2(255),
primary key (ADDRESS_ID)
);
create table TBL_TDN_COMPANY (
COMPANY_ID number(19,0) not null,
ADDRESS_ID number(19,0),
COMPANY_NAME varchar2(255),
primary key (COMPANY_ID)
);
alter table TBL_TDN_COMPANY
add constraint FK3C6819DB45522C47
foreign key (ADDRESS_ID)
references TBL_TDN_ADDRESS;
create sequence TBL_TDN_ADDRESS_S;
create sequence TBL_TDN_COMPANY_S;
User in the first place gives only CompanyDetails, not address details
i want to save only compnay details.
in company DO at this momnet AddressDO is null
in company table there shouldnt be any constraint for address. but hbm generating a constraint on company table.
How to avoid this.
Means I want to store company with address id as null.
Please help me
|