Hello,

I guess you have to do the 2 steps in the same way with PB API. Database
constraints needs the same sequence of insert/update.

If using  PB API, i don't think you're dealing with rollback ability, if
not, write the 2 steps as it were 2 standalone PB processes and it should
work.

Else, find out how to flush with PB API (post queries without commit).

Regards



On 6 Dec 2006 18:15:07 -0000, Virgo Smart <[EMAIL PROTECTED]> wrote:


Hello,

Is there a way to do the same using Persistence Broker APIs ?

Thanks and Regards,
Gautam.


On Wed, 06 Dec 2006 Bruno CROS wrote :
>The circular references have to be build in 2 steps :
>
>First, create instances and link one relation.
>Flush (write SQL insert and update)
>Second, link with the second relation (in back side).
>Commit.
>
>Your example :
>
>tx.begin();
>d = new Drawer();
>f = new Finish();
>tx.lock(d);
>tx.lock(f);
>d.setFinish(f);
>((ExtTransaction) tx).flush() // post INSERT queries
>f.setDrawer(d);
>tx.commit();
>
>If you have to delete one object, you have to break the circular
reference
>in the same way.
>
>tx.lock(d);
>d.setFinish(null);
>ExtTx.flush(); // post UPDATE set FINISHPK=null
>Impl.getDatabase().deletePersistent(f);
>tx.commit();
>
>Don't change java class definition (circular references relations), write
>your processes as you should do with JDBC only.
>
>Bruno.
>
>On 12/6/06, Armin Waibel <[EMAIL PROTECTED]> wrote:
>>
>>Hello,
>>
>>I have a scenario in which there are two classes which reference each
>>other. Eg. class Drawer references Finish and Finish references Drawer.
>>When I attempt to persist Drawer instance, an exception is thrown
>>suggesting that we cannot add or update a child row: a foreign key
>>reference fails.
>>
>>Is there a way to correct this problem without changing the Java class
>>definitions ?
>>
>>Thanks and Regards,
>>Gautam.
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>





Reply via email to