Guillaume, can you try now, with CVS version?

Thanks,
 Oleg

On Tuesday 13 January 2004 12:53, Guillaume Nodet wrote:
> The Oracle error is:
>       ORA-02291 integrity constraint (%s.%s) violated - parent key not found
>
> The constraint referenced in my case is an optional foreign key
> 'FOREIGN KEY (ACTDATA) REFERENCES ACTIVITIES (ID)' on table PROPERTIES.
>
> The ddl is following (i ommited all fields that i think are not relevant
> here)
>
>
> CREATE TABLE RESOURCES
> (
>   ID INTEGER,
>   ...
>   PRIMARY KEY (ID)
> );
> CREATE TABLE ACTIVITIES
> (
>   ID INTEGER,
>   ...
>   PRIMARY KEY (ID)
> );
> CREATE TABLE CARDS
> (
>   ID INTEGER,
>   ...
>   PRIMARY KEY (ID)
> );
> CREATE TABLE PROPERTIES
> (
>   IDA             INTEGER,
>   ...
>   RESDATA         INTEGER,
>   ACTDATA         INTEGER,
>   CARDPROPERTIES  INTEGER,
>   PRIMARY KEY (IDA),
>   FOREIGN KEY (RESDATA)
>     REFERENCES RESOURCES (ID),
>   FOREIGN KEY (ACTDATA)
>     REFERENCES ACTIVITIES (ID),
>   FOREIGN KEY (CARDPROPERTIES)
>     REFERENCES CARDS (ID),
> );
>
>
> and the repository.xml extract for the preceding tables is:
>
> <class-descriptor class="com.optitime.api.datamodel.entity.Resource"
> table="resources">
>       <field-descriptor name="id" column="id" jdbc-type="INTEGER"
> primarykey="true"/>
>       ...
>       <collection-descriptor name="data"
> element-class-ref="com.optitime.api.datamodel.entity.Property"
> auto-update="true" auto-retrieve="true" auto-delete="false">
>               <inverse-foreignkey field-ref="resdata"/>
>       </collection-descriptor>
> </class-descriptor>
> <class-descriptor class="com.optitime.api.datamodel.entity.Activity"
> table="activities">
>       <field-descriptor name="id" column="id" jdbc-type="INTEGER"
> primarykey="true"/>
>       ...
>       <collection-descriptor name="data"
> element-class-ref="com.optitime.api.datamodel.entity.Property"
> auto-update="true" auto-retrieve="true" auto-delete="false">
>               <inverse-foreignkey field-ref="actdata"/>
>       </collection-descriptor>
> </class-descriptor>
> <class-descriptor class="com.optitime.api.datamodel.entity.Card"
> table="cards">
>       <field-descriptor name="id" column="id" jdbc-type="INTEGER"
> primarykey="true"/>
>       ...
>       <collection-descriptor name="properties"
> element-class-ref="com.optitime.api.datamodel.entity.Property"
> auto-update="true" auto-retrieve="true" auto-delete="false">
>               <inverse-foreignkey field-ref="cardproperties"/>
>       </collection-descriptor>
> </class-descriptor>
>
>
> The DDL is generated and contains only primary keys and foreign keys,
> so all constraints should be known by OJB.
>
>
> -----Message d'origine-----
> De : Oleg Nitz [mailto:[EMAIL PROTECTED]
> Envoyé : mardi 13 janvier 2004 12:26
> À : OJB Users List
> Objet : Re: Batch mode and foreign keys
>
>
> Hi Guillaume,
>
> Please translate the text of the exception into English and give more
> details
> about this case. Is GNT the name of the table? What are related objects for
> GNT involved into this thansaction?
> And the most important question is:
> Do all database constraints correspond to some relations described in
> repository.xml?
> If there is some database constraint that OJB is not aware of, it might be
> violated with the batch mode, because OJB changes the order of statements
> to group them into batches, but in such way that doesn't violate *known*
> constraints.
>
> Regards,
>  Oleg
>
> On Tuesday 13 January 2004 08:07, Guillaume Nodet wrote:
> > Hi !
> >
> > I've got a problem with RC5.
> > I use the broker api to store several objets with collections and nested
> > objets.
> > Under certain circumstances (Oracle, batch mode), i've got the following
> > exception thrown:
> >
> > java.sql.SQLException: ORA-02291: violation de contrainte
> > (GNT.SYS_C00194175) d'integrite - touche parent introuvable
> >
> >     at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java)
> >     at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java)
> >     at oracle.jdbc.ttc7.Oall7.receive(Oall7.java)
> >     at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java)
> >     at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java)
> >     at
> > oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java)
>
> at
>
> > oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java)
> > at
>
> oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedState
>
> >m ent.java)
> >     at
> > org.apache.ojb.broker.platforms.PlatformDefaultImpl.executeBatch(Unknown
> > Source)
> >     at
>
> org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.doExecu
>
> >t e(Unknown Source)
> >     at
>
> org.apache.ojb.broker.util.batch.PreparedStatementInvocationHandler.invoke(
>
> >U nknown Source)
> >     at $Proxy0.doExecute(Unknown Source)
> >     at org.apache.ojb.broker.util.batch.BatchConnection.executeBatch(Unknown
> > Source)
> >     at org.apache.ojb.broker.util.batch.BatchConnection.commit(Unknown
>
> Source)
>
> >     at
>
> org.apache.ojb.broker.accesslayer.ConnectionManagerImpl.localCommit(Unknown
>
> > Source)
> >     at
> > org.apache.ojb.broker.core.PersistenceBrokerImpl.commitTransaction(Unknow
> >n Source)
> >     at
>
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.commitTransaction(Un
>
> >k nown Source)
> >     at
>
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.commitTransaction(Un
>
> >k nown Source)
> >     at
> > com.optitime.synchronizer6.Synchronizer.initTables(Synchronizer.java:826)
> >     at
>
> com.optitime.synchronizer6.SynchronizerApplication$ActionThread.run(Synchro
>
> >n izerApplication.java:1021)
> >
> > When I set batch mode to false, or when i commit the transaction between
> > each stored objects, i've got no problem.
> >
> > Has anyone an idea ?
> >
> > Guillaume Nodet.
> >
> >
> >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to