Thanks Armin, I'll look forward to your fix. Please let me know when you
solve it. I have discovered the primitive problem that you're
describing. I've already changed 1 class and am considering changing all
of them :-)

Thanks Again,
Greg

-----Original Message-----
From: Armin Waibel [mailto:[EMAIL PROTECTED] 
Sent: Friday, October 31, 2003 2:22 PM
To: OJB Users List
Subject: Re: Collection in superclass not saving correctly


Hi Greg,

I currently try to fix this bug in SequenceManagerNativeImpl. By the
way, if possible do not use primitive type for PK and FK fields (0/null
problems). Stay tuned.

regards,
Armin

Plummer, Greg wrote:

> I tried changing the sequence manager to SequenceManagerInMemoryImpl 
> as you suggested. My test died, but it looks like the plan_id that 
> used to get stored as -1 is now getting stored as a positive int, but 
> it's not be the correct id. I think this proves your point though.
> 
> We're using mainframe DB2, not UDB, so we can't use sequence 
> generation. It's too late in the game to change the strategy anyway, 
> we already have enough work to challenge our delivery date.
> 
> Any advice?
> 
> Thanks, Greg
> 
> -----Original Message-----
> From: Armin Waibel [mailto:[EMAIL PROTECTED]
> Sent: Thursday, October 30, 2003 8:26 PM
> To: OJB Users List
> Subject: Re: Collection in superclass not saving correctly
> 
> 
> Hi again,
> 
> Plummer, Greg wrote:
> 
> 
>>Hi Armim,
>>
>>Thanks for the quick reply.
>>
>>batch-mode is false.
>>
>>Here's my DB definition:
>>
>><jdbc-connection-descriptor
>>        jcd-alias="ADMSTDDE"
>>        default-connection="fase"
> 
> ==> typo?
> 
>>        platform="db2"
>>        jdbc-level="1.0"
>>        driver="COM.ibm.db2.jdbc.app.DB2Driver"
>>        protocol="jdbc"
>>        subprotocol="db2"
>>        dbalias="DB2T"
>>        username="*********"
>>        password="**********"
>>        batch-mode="false">
>>      <sequence-manager
>>className="org.apache.ojb.broker.util.sequence.SequenceManagerNativeIm
>>pl
>>">
>>              <attribute attribute-name="autoNaming"
> 
> attribute-value="true"/>
> 
>>      </sequence-manager>
>></jdbc-connection-descriptor>
>>
>>By the way, I'm using the PersistenceManager directly, not JDO or
>>ODMG. One more thing to note, when instances of 
>>ClientPayrollDeductionPlan have a value of 0 for the planId field when
> 
> 
>>I read them back in form the database. Any thoughts?
> 
> 
> I think it's a problem caused by the sequence manager implementation. 
> Can you verify this by change the sequence manager implementaion in 
> your test (for testing use SequenceManagerInMemoryImpl)?
> 
> Is it mandatory for you to use Identity columns?
> If not, I think DB2 supports database based sequence generation (using

> 'nextval' command). This also allow other applications to do inserts 
> without corrupt integrity (SequenceManagerNextValImpl).
> 
> regards,
> Armin
> 
> 
>>Thanks, Greg
>>
>>-----Original Message-----
>>From: Armin Waibel [mailto:[EMAIL PROTECTED]
>>Sent: Thursday, October 30, 2003 7:55 PM
>>To: OJB Users List
>>Subject: Re: Collection in superclass not saving correctly
>>
>>
>>Hi Greg,
>>
>>assume you are using SequenceManagerNativeImpl
>>(or SequenceManagerMySQLImpl). The '-1' value
>>is a temporary used id. Normally OJB creating
>>and handling id's before an object was written
>>to DB. When using identity columns the id can
>>only be read after the object was stored to DB.
>>
>>hmm, do you use batch-mode 'true'?
>>
>>regards,
>>Armin
>>
>>Plummer, Greg wrote:
>>
>>
>>
>>>Hi All,
>>>
>>>I have a superclass, PayrollDeductionPlan, that contains a collection

>>>of PayPlanAssociation objects. The foreign key in the 
>>>PayPlanAssociation table that points back to the PayrollDeductionPlan

>>>table is not getting stored correctly. See the snapshots of the 
>>>tables
>>
>>
>>>below, don't know where the -1 is coming from.
>>>
>>>I have the following (stripped-down) classes, repository.xml entries 
>>>and tables. Any help would be greatly appreciated! Thanks in advance.
>>>
>>>Greg Plummer
>>>
>>>
>>>
>>>public class PayrollDeductionPlan {
>>>
>>>     private List payPlanAssociations = new ArrayList();
>>>     private int planId;
>>>}
>>>
>>>public class ClientPayrollDeductionPlan extends PayrollDeductionPlan 
>>>{
>>>
>>>     private int id;
>>>}
>>>
>>>public class PayPlanAssociation {
>>>     
>>>     private ClientGroup clientGroup = null;
>>>     private String payCode = null;
>>>     private PayrollDeductionPlan payrollDeductionPlan = null;
>>>}
>>>
>>>
>>>
>>><class-descriptor
>>>
>>>class="com.lmig.pm.affinity.model.billing.PayrollDeductionPlan"
>>>       table="DEXA100T">
>>>    <field-descriptor
>>>        name="planId"
>>>        column="PLAN_ID"
>>>        jdbc-type="INTEGER"
>>>        primarykey="true"
>>>        autoincrement="true"
>>>        access="readonly"
>>>     />
>>>     <collection-descriptor
>>>             name="payPlanAssociations"
>>>
>>>element-class-ref="com.lmig.pm.affinity.model.billing.PayPlanAssociat
>>>i
>>>on
>>>"
>>>             auto-read="true"
>>>             auto-update="true"
>>>             auto-delete="true">
>>>                     <inverse-foreignkey field-ref="planId" />
>>>      </collection-descriptor>       
>>></class-descriptor>
>>>
>>><class-descriptor
>>>
>>>class="com.lmig.pm.affinity.model.billing.ClientPayrollDeductionPlan"
>>>       table="DEXA070T">
>>>    <field-descriptor
>>>        name="id"
>>>        column="PAYROLL_ID"
>>>        jdbc-type="INTEGER"
>>>        primarykey="true"
>>>        autoincrement="true"
>>>        access="readonly"
>>>     />
>>>    <field-descriptor
>>>        name="planId"
>>>        column="PLAN_ID"
>>>        jdbc-type="INTEGER"
>>>        access="anonymous"
>>>     />
>>>     <reference-descriptor 
>>>             name="super"
>>>
>>>class-ref="com.lmig.pm.affinity.model.billing.PayrollDeductionPlan"
>>>             auto-update="true"
>>>             auto-delete="true">
>>>                     <foreignkey field-ref="planId"/>
>>>     </reference-descriptor>            
>>></class-descriptor>
>>>
>>><class-descriptor
>>>       class="com.lmig.pm.affinity.model.billing.PayPlanAssociation"
>>>       table="DEXA210T">
>>>    <field-descriptor
>>>     name="clientGroupId"
>>>     column="CLIENT_GROUP_ID"
>>>             primarykey="true"
>>>     jdbc-type="INTEGER"
>>>     access="anonymous"
>>>     />
>>>     <reference-descriptor
>>>             name="clientGroup"
>>>
>>
>>class-ref="com.lmig.pm.affinity.model.client.ClientGroup">
>>
>>>                     <foreignkey field-ref="clientGroupId"/>
>>>     </reference-descriptor>
>>>     
>>>    <field-descriptor
>>>        name="payCode"
>>>        column="PAYCODE"
>>>        primarykey="true"
>>>        jdbc-type="CHAR"
>>>     />
>>>     
>>>   <field-descriptor
>>>     name="planId"
>>>     column="PLAN_ID"
>>>     jdbc-type="INTEGER"
>>>     access="anonymous"
>>>     />
>>>     <reference-descriptor
>>>             name="payrollDeductionPlan"
>>>
>>>class-ref="com.lmig.pm.affinity.model.billing.PayrollDeductionPlan">
>>>                     <foreignkey field-ref="planId"/>
>>>     </reference-descriptor>
>>></class-descriptor>
>>>
>>>
>>>DEXA100T (PayrollDeductionPlan table):
>>>PLAN_ID      NAME
>>>70           Plan Name
>>>
>>>
>>>DEXA070T (ClientPayrollDeductionPlan table):
>>>PAYROLL_ID   PLAN_ID
>>>26           70
>>>
>>>
>>>DEXA210T (PayPlanAssociation table):
>>>CLIENT_GROUP_ID      PLAN_ID PAYCODE
>>>141                  -1              AC              
>>>
>>>
>>
>>
>>
>>
>>---------------------------------------------------------------------
>>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]
> 
> 
> 



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