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 Armin Waibel <ar...@apache.org> on 2004/09/01 18:37:38 UTC

Re: Autoincriment FK and PK problem

Brian Latimer wrote:
> 
>> in a DB2 databse
> 
> 
>> Table A has a PK named id that is also an identity (autoincriment) column
> 
> 
> Table B has a PK called id that is also a FK to table A's id field
> 
> When attempting to insert Class A, which contains an instance of Class 
> B, it seems that OJB attempts to insert class B before class A.

right, this is current behavior.

>  This 
> fails, as class A doesn't have a proper PK yet, and thus class B doesn't 
> have a valid PK yet.
>

Workaround for PB-api could be, first do PB.store(A) (without referenced 
object), then set PK from in reference B and do PB.store(B) or set 
reference in A and store A again.


> given that I can't change my poorly designed database, is there anything 
> I can do within OJB to get around this problem?
> 
> Do I simply need to manually insert class A and B?

Of course you can use OJB, but you have to prepare the B objects before 
insert (update, delete will work). Currently OJB isn't smart enough to 
handle this automatic. But it shouldn't be a problem to enhance OJB to 
support this.


>  That would be a 
> shame, as the auto-update feature works great for instances of class A 
> and B that already exist.
>
> any suggestions would be appriciated.
> 

Please make a feature request. I think you are right, OJB should be able 
handle this, e.g. by introduce a setting in metadata specify that B PK 
has a FK to A PK). In that case the order will be interchanged and OJB 
first store the main object and then the 1:1 reference.

regards,
Armin


> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> 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