The answer to this appears to be yes
I tried pulling an object with id = 1 and it worked like a charm.

I will just update my PK's

-----Original Message-----
From: Mindy Pereira [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, April 27, 2004 10:52 AM
To: OJB Users List
Subject: RE: Retrieving referenced object


No, my PK field is a java Long.
There is an object with a PK = 0, and this corresponds to the text that
is being pulled with the object in the title field. However, the id does
not. Does OJB have a problem with PK = 0 for non-primitive types?

-----Original Message-----
From: Armin Waibel [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, April 27, 2004 10:50 AM
To: OJB Users List
Subject: Re: Retrieving referenced object


Hi Mindy,

seems OJB assumes received object is a 'new' object.

If you use primitive types for PK and FK fields (int, long, ...) in your

persistence capable objects, OJB has to determine which value is the 
'null' representation. Currently OJB assume a primitive field is 'null' 
when it's value is '0'.

1083076041971|0|0|statement|SELECT
A0.TITLE,A0.DESCR,A0.GOAL_ID,A0.OBJECTIVE,A0.
ID FROM FP_OBJECTIVE A0 WHERE A0.ID IN ( ? )|SELECT
A0.TITLE,A0.DESCR,A0.GOAL_ID ,A0.OBJECTIVE,A0.ID FROM FP_OBJECTIVE A0
WHERE A0.ID IN ( '0' )

seems that the retrieved object has 0 as PK value. Now the question, do 
you use primitive PK fields?

regards
Armin

Mindy Pereira wrote:

> I'm seeing some very strange behavior when I try to retrieve the
> ObjectiveBean from the relationship described below:

> <class-descriptor class="appian.fhysp.beans.ProgObjBridgeBean"
> table="FP_PROG_OBJBRIDGE">
>       <field-descriptor name="programId" column="PROGRAM_ID"
> jdbc-type="BIGINT" primarykey="true"/>

>       <field-descriptor name="objId" column="OBJ_ID"
> jdbc-type="BIGINT" primarykey="true"/>


>       
>        <reference-descriptor
>          name="objective"
>          class-ref="appian.fhysp.beans.ObjectiveBean"
> auto-update="false">
>          <foreignkey field-ref="objId"/>
>       </reference-descriptor>    
> </class-descriptor>
> 
> ProgramBean's contain a proxy collection ProgObjBridgeBeans which hold
a
> programs relationship to an objective. When I access the
> ProgObjBridgeBeans collection, the objective field SHOULD be filled
from
> the database with the ObjectiveBean id, title, and descr. Instead, OJB
> is correctly retrieving the title, but seems to be overwriting the id.
> (See SQLSpy Output below for more information).
> 
> SQLSpy Output:
> 
> 1083076041971|0|0|statement|SELECT
> A0.TITLE,A0.DESCR,A0.GOAL_ID,A0.OBJECTIVE,A0.
> ID FROM FP_OBJECTIVE A0 WHERE A0.ID IN ( ? )|SELECT
> A0.TITLE,A0.DESCR,A0.GOAL_ID
> ,A0.OBJECTIVE,A0.ID FROM FP_OBJECTIVE A0 WHERE A0.ID IN ( '0' )
> 1083076042041|10|1|statement|SELECT
> A0.VERSION,A0.GRAB_SIZE,A0.MAX_KEY,A0.FIELDN
> AME,A0.TABLENAME FROM OJB_HL_SEQ A0 WHERE (A0.TABLENAME LIKE  ? ) AND
> A0.FIELDNA
> ME LIKE  ? |SELECT
> A0.VERSION,A0.GRAB_SIZE,A0.MAX_KEY,A0.FIELDNAME,A0.TABLENAME
> FROM OJB_HL_SEQ A0 WHERE (A0.TABLENAME LIKE  'SEQ_FP_OBJECTIVE' ) AND
> A0.FIELDNA
> ME LIKE  'ID'
> 1083076042061|10|1|statement|SELECT
> VERSION,GRAB_SIZE,MAX_KEY,FIELDNAME,TABLENAM
> E FROM OJB_HL_SEQ WHERE TABLENAME = ?  AND FIELDNAME = ? |SELECT
> VERSION,GRAB_SI
> ZE,MAX_KEY,FIELDNAME,TABLENAME FROM OJB_HL_SEQ WHERE TABLENAME =
> 'SEQ_FP_OBJECTI
> VE'  AND FIELDNAME = 'ID'
> 1083076042071|0|1|statement|UPDATE OJB_HL_SEQ SET
> MAX_KEY=?,GRAB_SIZE=?,VERSION=
> ? WHERE TABLENAME = ?  AND FIELDNAME = ?  AND VERSION = ? |UPDATE
> OJB_HL_SEQ SET
>  MAX_KEY='352',GRAB_SIZE='20',VERSION='16' WHERE TABLENAME =
> 'SEQ_FP_OBJECTIVE'
>  AND FIELDNAME = 'ID'  AND VERSION = '15'
> 1083076042071|0|1|commit||
> 
> Note that after it retrieves the information from FP_OBJECTIVE
(filling
> out the proxy collection of ProgObjBridgeBeans), it then makes a call
to
> the primary key auto-incrementer, and the id of the retrieved
> ObjectiveBean is set to MAX_KEY +1;
> 
> Any ideas?
> 
> 
> 
>       
> 
> ---------------------------------------------------------------------
> 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