I understand that, but shouldn't it NOT delete items that were never
in the database?  In my code example below, I add something to the
list that never was in the database, then OJB tries to delete it
anyway.  How can it delete something when the primary key is null?


On 4/15/05, Jakob Braeuchi <[EMAIL PROTECTED]> wrote:
> hi jay,
> 
> this is a feature of the RemovalAwareCollection. it tries to delete all
> removed items from the database.
> 
> jakob
> 
> Jay Sissom schrieb:
> > Hello, we have a mapping with a 1:m relation in it:
> >
> > <class-descriptor class="edu.iu.uis.pur.req.bo.Requisition"
> > table="PUR.PUR_REQS_T">
> > <field-descriptor column="REQS_ID" jdbc-type="INTEGER" name="id"
> > primarykey="true"
> >     sequence-name="PUR.REQS_ID" autoincrement="true"/>
> >   ... many other fields .....
> >  <field-descriptor column="VER_NBR" jdbc-type="INTEGER" locking="true"
> > name="version"/>
> >  <collection-descriptor auto-retrieve="true" auto-update="object"
> > auto-delete="object" proxy="true"
> >      element-class-ref="edu.iu.uis.pur.req.bo.RequisitionItem"  
> > name="items">
> >             <inverse-foreignkey field-ref="requisitionId"/>
> >  </collection-descriptor>
> > </class-descriptor>
> >
> > <class-descriptor class="edu.iu.uis.pur.req.bo.RequisitionItem"
> > table="PUR.PUR_REQS_ITM_T">
> > <field-descriptor column="REQS_ID" jdbc-type="INTEGER"
> > name="requisitionId" primarykey="true"/>
> > <field-descriptor column="ITM_LN_NBR" jdbc-type="INTEGER"
> > name="itemLineNumber" primarykey="true"/>
> >    ....many other fields...
> > <field-descriptor column="VER_NBR" jdbc-type="INTEGER" locking="true"
> > name="version"/>
> > </class-descriptor>
> >
> > There are times in our process where we add a new item to the items
> > collection in our Requisition, then we delete it before saving the
> > collection.
> >
> > When we do this, we get an OptimisticLockException because OJB is
> > trying to delete the object that was never in the table.  Here is
> > sample code that causes this:
> >
> > Requisition req = reqService.getRequisitionById(new Integer(1517));
> >
> > // Add a blank one
> > RequisitionItem ri = new RequisitionItem();
> > req.getItems().add(ri);
> >
> > // Remove it
> > req.getItems().remove(ri);
> >
> > broker.store(req);
> >
> > Is this because of something we are doing or is it a bug?  We're using
> > version 1.0.0.
> >
> > Thanks
> > Jay
> >
> > ---------------------------------------------------------------------
> > 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