So, is there any way I can I configure my mapping (or query) to build an
Object A that contains a collection of Object Bs joined only on Node_ID
(even though both mappings have other PKs)? 

I don't really get why all the primary keys have to be the
collection/reference-descriptor. I just don't have that information when I
am joining the two tables (the only thing I have is Node_ID). 

For example one of the primary keys is an effective_date, which I will Never
actually know, all I will know is that the effective_date is <= current
Date, and the end_effective_date is > current Date. Thats the way that I
will find my rows.

-----Original Message-----
From: McCaffrey, John G. [mailto:[EMAIL PROTECTED]
Sent: Friday, March 19, 2004 1:12 PM
To: 'OJB Users List'
Subject: RE: 1 to 1 mapping


Armin, 
First, Thanks for responding I appreciate your assitance.

My problem is that the table B can only be joined to Table A using one field
(Node_ID), as the other keys from table A are not in the actual table B.
(even the Process_Date field that is in Table B, is ITs process_date, and
can't be used for a join)

How can I configure my mapping (or query) to build an Object A that contains
a collection of Object Bs joined only on Node_ID?

I could just munge the mapping and make only the Node_ID the primary Key for
both A and B, but I am concerned about the consequences of not telling OJB
what really makes those rows unique. (I think it would adversely affect my
findByPK and insert methods)

thanks again for your help 



-----Original Message-----
From: Armin Waibel [mailto:[EMAIL PROTECTED]
Sent: Friday, March 19, 2004 12:35 PM
To: OJB Users List
Subject: Re: 1 to 1 mapping


Hi John,

you have to declare all PK fields in the collection/reference-descriptor 
inverse-foreignkey/foreignkey tags.

McCaffrey, John G. wrote:
> I am trying to join two tables A and B
> table A has three primary keys
> Main_ID
> Node_ID
> Process_Date
> 
> table B has two primary keys
> Node_ID
> Process_Date
> 
> my mapping has the Table A object containing a collection of B obj

ok, you have an 1:n reference from A to B, thus your 
collection-descriptor should look like

<class-descriptor for A>
...
<collection-descriptor
name="allBs"
element-class-ref="B"
proxy="false"
auto-retrieve="true" >
   <inverse-foreignkey field-ref="FK_node_ID"/>
   <inverse-foreignkey field-ref="FK_main_ID"/>
   <inverse-foreignkey field-ref="FK_process_date"/>
</collection-descriptor>
...
</class-descriptor>

Means your B class needs three FK fields (to map the PK of A).

regards,
Armin

> I want to join the collection using the Node_ID, because it is the only
> thing they can be joined on
> 
> when I do the mapping
> 
> <collection-descriptor name="aObj" element-class-ref="x.x.x.AObj"
> proxy="false" auto-retrieve="true" > 
> <inverse-foreignkey field-ref="node_ID"/>
> </collection-descriptor>
> 
> it complains about an arrayIndexOutOfBounds 
> but it works when the only primary key is Node_ID 
> 
> i don't get it
> 
> 
> ---------------------------------------------------------------------
> 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