Hi Greg,

the fix is in CVS. Try latest CVS head
(should be stable).

regards,
Armin

Plummer, Greg wrote:

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]






--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to