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]
