Hello!

I discovered a problem with RC4 (RC3) concerning the Collection-Mapping.
If the name of the primary key member variable in both classes is exactly the same, then the save procedure skips same ids.


eg.:
Status 1---n Person

If you add a new status with a collection of corresponding persons, then the person mapping with the same ID like the new status is skipped.

for example: you add a new status with ID=2 and want to link it to persons-ids 1,2,3, the mapping of person-id 2 is not created.

[repository]

   <class-descriptor class="at.viatec.rio.ojb.person.Person"
                      table="PERSON">
      <extent-class class-ref="at.viatec.rio.ojb.person.Customer"/>
      <extent-class class-ref="at.viatec.rio.ojb.person.Supplier"/>
      <extent-class class-ref="at.viatec.rio.ojb.person.Representative"/>

      <field-descriptor id="1"
                        name="m_intID"
                        column="ID"
                        jdbc-type="INTEGER"
                        primarykey="true"
                        autoincrement="true"/>
      <field-descriptor id="2"
                        name="ojbConcreteClass"
                        column="CLASS_NAME"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="3"
                        name="m_strFirstname"
                        column="NAME2"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="4"
                        name="m_strLastname"
                        column="NAME1"
                        jdbc-type="VARCHAR"
                        nullable="false"/>
    </class-descriptor>

    <class-descriptor class="at.viatec.rio.ojb.person.interfaces.IPerson">
      <extent-class class-ref="at.viatec.rio.ojb.person.Person"/>
      <extent-class class-ref="at.viatec.rio.ojb.person.Customer"/>
      <extent-class class-ref="at.viatec.rio.ojb.person.Supplier"/>
      <extent-class class-ref="at.viatec.rio.ojb.person.Representative"/>
    </class-descriptor>

    <class-descriptor class="at.viatec.rio.ojb.person.Customer"
                      table="PERSON">
      <field-descriptor id="1"
                        name="m_intID"
                        column="ID"
                        jdbc-type="INTEGER"
                        primarykey="true"
                        autoincrement="true"/>
      <field-descriptor id="2"
                        name="ojbConcreteClass"
                        column="CLASS_NAME"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="3"
                        name="m_strFirstname"
                        column="NAME2"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="4"
                        name="m_strLastname"
                        column="NAME1"
                        jdbc-type="VARCHAR"
                        nullable="false"/>
      <field-descriptor id="5"
                        name="m_intStatus"
                        column="FKSTATUS"
                        jdbc-type="INTEGER"/>
      <field-descriptor id="6"
                        name="m_datDetails"
                        column="FIELD1"
                        jdbc-type="DATE"/>

<reference-descriptor name="m_objStatus" proxy="true"

class-ref="at.viatec.rio.ojb.status.StatusCustomer"
                            auto-update="true">
        <foreignkey field-ref="m_intStatus"/>
      </reference-descriptor>
    </class-descriptor>

<class-descriptor class="at.viatec.rio.ojb.person.interfaces.ICustomer">
<extent-class class-ref="at.viatec.rio.ojb.person.Customer"/>
</class-descriptor>


    <class-descriptor class="at.viatec.rio.ojb.person.Supplier"
                      table="PERSON">
      <field-descriptor id="1"
                        name="m_intID"
                        column="ID"
                        jdbc-type="INTEGER"
                        primarykey="true"
                        autoincrement="true"/>
      <field-descriptor id="2"
                        name="ojbConcreteClass"
                        column="CLASS_NAME"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="3"
                        name="m_strFirstname"
                        column="NAME2"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="4"
                        name="m_strLastname"
                        column="NAME1"
                        jdbc-type="VARCHAR"
                        nullable="false"/>
      <field-descriptor id="5"
                        name="m_intStatus"
                        column="FKSTATUS"
                        jdbc-type="INTEGER"/>
      <field-descriptor id="6"
                        name="m_strDetails"
                        column="FIELD2"
                        jdbc-type="VARCHAR"/>

<reference-descriptor name="m_objStatus" proxy="true"
class-ref="at.viatec.rio.ojb.status.StatusSupplier"
auto-retrieve="true"
auto-update="true">
<foreignkey field-ref="m_intStatus"/>
</reference-descriptor>
</class-descriptor>


<class-descriptor class="at.viatec.rio.ojb.person.interfaces.ISupplier">
<extent-class class-ref="at.viatec.rio.ojb.person.Supplier"/>
</class-descriptor>


    <class-descriptor class="at.viatec.rio.ojb.person.Representative"
                      table="PERSON">
      <field-descriptor id="1"
                        name="m_intID"
                        column="ID"
                        jdbc-type="INTEGER"
                        primarykey="true"
                        autoincrement="true"/>
      <field-descriptor id="2"
                        name="ojbConcreteClass"
                        column="CLASS_NAME"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="3"
                        name="m_strFirstname"
                        column="NAME2"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="4"
                        name="m_strLastname"
                        column="NAME1"
                        jdbc-type="VARCHAR"
                        nullable="false"/>
      <field-descriptor id="5"
                        name="m_intStatus"
                        column="FKSTATUS"
                        jdbc-type="INTEGER"/>
      <field-descriptor id="6"
                        name="m_strDetails"
                        column="FIELD3"
                        jdbc-type="VARCHAR"/>

<reference-descriptor name="m_objStatus" proxy="true"
class-ref="at.viatec.rio.ojb.status.StatusRepresentative"
auto-retrieve="true"
auto-update="true">
<foreignkey field-ref="m_intStatus"/>
</reference-descriptor>
</class-descriptor>


<class-descriptor class="at.viatec.rio.ojb.person.interfaces.IRepresentative">
<extent-class class-ref="at.viatec.rio.ojb.person.Representative"/>
</class-descriptor>


<!-- Mappings status -->
<class-descriptor class="at.viatec.rio.ojb.status.Status"
table="STATUS">
<extent-class class-ref="at.viatec.rio.ojb.status.StatusCustomer"/>
<extent-class class-ref="at.viatec.rio.ojb.status.StatusSupplier"/>
<extent-class class-ref="at.viatec.rio.ojb.status.StatusRepresentative"/>


      <field-descriptor id="1"
                        name="m_intID"
                        column="ID"
                        jdbc-type="INTEGER"
                        primarykey="true"
                        autoincrement="true"/>
      <field-descriptor id="2"
                        name="ojbConcreteClass"
                        column="CLASS_NAME"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="3"
                        name="m_strStatus"
                        column="DESCRIPTION"
                        jdbc-type="VARCHAR"
                        nullable="false"/>
    </class-descriptor>

<class-descriptor class="at.viatec.rio.ojb.status.interfaces.IStatus">
<extent-class class-ref="at.viatec.rio.ojb.status.Status"/>
<extent-class class-ref="at.viatec.rio.ojb.status.StatusCustomer"/>
<extent-class class-ref="at.viatec.rio.ojb.status.StatusSupplier"/>
<extent-class class-ref="at.viatec.rio.ojb.status.StatusRepresentative"/>
</class-descriptor>


    <class-descriptor class="at.viatec.rio.ojb.status.StatusCustomer"
                      table="STATUS">
      <field-descriptor id="1"
                        name="m_intID"
                        column="ID"
                        jdbc-type="INTEGER"
                        primarykey="true"
                        autoincrement="true"/>
      <field-descriptor id="2"
                        name="ojbConcreteClass"
                        column="CLASS_NAME"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="3"
                        name="m_strStatus"
                        column="DESCRIPTION"
                        jdbc-type="VARCHAR"
                        nullable="false"/>

<collection-descriptor name="m_colCustomer" proxy="true"

element-class-ref="at.viatec.rio.ojb.person.Customer"
                             auto-update="true"
                             orderby="m_intID"
                             sort="ASC">
        <inverse-foreignkey field-ref="m_intStatus"/>
      </collection-descriptor>
    </class-descriptor>

<class-descriptor class="at.viatec.rio.ojb.status.interfaces.IStatusCustomer">
<extent-class class-ref="at.viatec.rio.ojb.status.StatusCustomer"/>
</class-descriptor>


    <class-descriptor class="at.viatec.rio.ojb.status.StatusSupplier"
                      table="STATUS">
      <field-descriptor id="1"
                        name="m_intID"
                        column="ID"
                        jdbc-type="INTEGER"
                        primarykey="true"
                        autoincrement="true"/>
      <field-descriptor id="2"
                        name="ojbConcreteClass"
                        column="CLASS_NAME"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="3"
                        name="m_strStatus"
                        column="DESCRIPTION"
                        jdbc-type="VARCHAR"
                        nullable="false"/>

<collection-descriptor name="m_colSupplier" proxy="true"

element-class-ref="at.viatec.rio.ojb.person.Supplier"
                             orderby="m_strLastname"
                             sort="DESC"
                             auto-retrieve="true"
                             auto-update="true">
                                <inverse-foreignkey field-ref="m_intStatus"/>
      </collection-descriptor>
    </class-descriptor>

<class-descriptor class="at.viatec.rio.ojb.status.interfaces.IStatusSupplier">
<extent-class class-ref="at.viatec.rio.ojb.status.StatusSupplier"/>
</class-descriptor>


    <class-descriptor class="at.viatec.rio.ojb.status.StatusRepresentative"
                      table="STATUS">
      <field-descriptor id="1"
                        name="m_intID"
                        column="ID"
                        jdbc-type="INTEGER"
                        primarykey="true"
                        autoincrement="true"/>
      <field-descriptor id="2"
                        name="ojbConcreteClass"
                        column="CLASS_NAME"
                        jdbc-type="VARCHAR"/>
      <field-descriptor id="3"
                        name="m_strStatus"
                        column="DESCRIPTION"
                        jdbc-type="VARCHAR"
                        nullable="false"/>

<collection-descriptor name="m_colRepresentative" proxy="true"

element-class-ref="at.viatec.rio.ojb.person.Representative"
                             orderby="m_intID"
                             sort="DESC"
                             auto-retrieve="true"
                             auto-update="true">
                                <inverse-foreignkey field-ref="m_intStatus"/>
      </collection-descriptor>
    </class-descriptor>

<class-descriptor class="at.viatec.rio.ojb.status.interfaces.IStatusRepresentative">
<extent-class class-ref="at.viatec.rio.ojb.status.StatusRepresentative"/>
</class-descriptor>





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



Reply via email to