You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Brian Chaplin <bc...@chaplinsolutions.com> on 2005/03/15 21:54:42 UTC
Re: Problem storing objects m:n relations using ODMG
I'm having the same problem. Is there an elegant solution to this in OJB?
Bart Molenkamp wrote:
> Hi,
>
> I've a problem storing objects using m:n relations. Suppose I have a
> class Person, and a class Project, and an m:n relationship between them
> (classic example). Now, in a single transaction, I want to create a new
> person instance, a new project instance, set a relationship between
> them, and then store them both (add them to the database because they're
> new) by committing the transaction. But I get an error, because of an
> insert on table "person_project" which says that I violate a constraint:
> when storing the person instance, it also stores the relationship but
> the project isn't stored in the database yet.
>
> I could work-around this by first creating a new person, a new project,
> storing them both (transaction.checkpoint()) and then setting the
> relationship, and commit() the transaction. But is there anyway that I
> can tell OJB to do this transparently?
>
> Thanks,
> Bart.
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
Re: Problem storing objects m:n relations using ODMG
Posted by Armin Waibel <ar...@apache.org>.
Hi,
I working hard at the m:n issue for the odmg-api. Think in upcoming
1.0.2 the hassle with m:n will be fixed.
Till the new release is out, you can try the way described by Bart (but
recommend to use tx.flush() by casting tx to TransactionExt instead of
tx.checkpoint, because when rollback is needed) or to use the underlying
PB-api to store the m:n relations.
regards,
Armin
Brian Chaplin wrote:
> I'm having the same problem. Is there an elegant solution to this in OJB?
> Bart Molenkamp wrote:
>
>> Hi,
>>
>> I've a problem storing objects using m:n relations. Suppose I have a
>> class Person, and a class Project, and an m:n relationship between them
>> (classic example). Now, in a single transaction, I want to create a new
>> person instance, a new project instance, set a relationship between
>> them, and then store them both (add them to the database because they're
>> new) by committing the transaction. But I get an error, because of an
>> insert on table "person_project" which says that I violate a constraint:
>> when storing the person instance, it also stores the relationship but
>> the project isn't stored in the database yet.
>>
>> I could work-around this by first creating a new person, a new project,
>> storing them both (transaction.checkpoint()) and then setting the
>> relationship, and commit() the transaction. But is there anyway that I
>> can tell OJB to do this transparently?
>>
>> Thanks,
>> Bart.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org