Hye,

I'm using OJB RC5 (not CVS head), and I'm getting strange behaviours when I use inheritance. Here's my repository mapping:


<!-- Definitions for class domain.admin.User -->


<class-descriptor
             class="domain.admin.User"
             table="USER"
     >

     <field-descriptor
          name="idInternal"
          column="ID_INTERNAL"
          jdbc-type="INTEGER"
          primarykey="true"
          autoincrement="true"
      />

      <field-descriptor
          name="ackOptLock"
          column="ACK_OPT_LOCK"
          jdbc-type="INTEGER"
          locking="true"
      />


<field-descriptor name="username" column="USERNAME" jdbc-type="VARCHAR" />

       <field-descriptor
          name="password"
          column="PASSWORD"
          jdbc-type="VARCHAR"
       />

        <field-descriptor
          name="keyGroup"
          column="KEY_GROUP"
          jdbc-type="INTEGER"
       />

       <reference-descriptor
                name="group"
                class-ref="domain.Group"
                proxy="false"
                        refresh="true"
          >
         <foreignkey field-ref="keyGroup"/>
        </reference-descriptor>

        <collection-descriptor
                name="simpleCars"
                auto-retrieve="true"
                refresh="true"
                proxy="true"
                element-class-ref="domain.SimpleCar"
      >
      <inverse-foreignkey field-ref="keyUser"/>
    </collection-descriptor>


</class-descriptor>


<!-- End of definitions for class domain.admin.User -->


<!-- Definitions for class domain.Group -->


<class-descriptor
             class="domain.Group"
             table="GROUPS"
     >

     <field-descriptor
          name="idInternal"
          column="ID_INTERNAL"
          jdbc-type="INTEGER"
          primarykey="true"
          autoincrement="true"
      />

      <field-descriptor
          name="ackOptLock"
          column="ACK_OPT_LOCK"
          jdbc-type="INTEGER"
          locking="true"
      />

       <field-descriptor
          name="description"
          column="DESCRIPTION"
          jdbc-type="VARCHAR"
       />

       <field-descriptor
          name="ackOptLock"
          column="ACK_OPT_LOCK"
          jdbc-type="INTEGER"
          locking="true"
       />

</class-descriptor>

<!-- End of definitions for class domain.Group -->

<!-- Definitions for class domain.SimpleCar -->

<class-descriptor class="domain.SimpleCar">
        <extent-class class-ref="domain.HiperCar" />
        <extent-class class-ref="domain.SuperCar" />
</class-descriptor>

<!-- End of definitions for class domain.SimpleCar -->

<!-- Definitions for class domain.SuperCar -->

<class-descriptor
             class="domain.SuperCar"
             table="SUPER_CAR"
     >

     <field-descriptor
          name="idInternal"
          column="ID_INTERNAL"
          jdbc-type="INTEGER"
          primarykey="true"
          autoincrement="true"
       />

       <field-descriptor
          name="ackOptLock"
          column="ACK_OPT_LOCK"
          jdbc-type="INTEGER"
          locking="true"
        />

       <field-descriptor
          name="description"
          column="DESCRIPTION"
          jdbc-type="VARCHAR"
       />

       <field-descriptor
          name="keyUser"
          column="KEY_USER"
          jdbc-type="INTEGER"
       />

       <field-descriptor
          name="color"
          column="COLOR"
          jdbc-type="VARCHAR"
       />

       <reference-descriptor
                name="user"
                class-ref="domain.admin.User"
                proxy="false"
                        refresh="true"
          >
         <foreignkey field-ref="keyUser"/>
        </reference-descriptor>
</class-descriptor>

<!-- End of definitions for class domain.SuperCar -->

<!-- Definitions for class domain.HiperCar -->

<class-descriptor
             class="domain.HiperCar"
             table="HIPER_CAR"
     >

     <field-descriptor
          name="idInternal"
          column="ID_INTERNAL"
          jdbc-type="INTEGER"
          primarykey="true"
          autoincrement="true"
       />

       <field-descriptor
          name="ackOptLock"
          column="ACK_OPT_LOCK"
          jdbc-type="INTEGER"
          locking="true"
        />

       <field-descriptor
          name="description"
          column="DESCRIPTION"
          jdbc-type="VARCHAR"
       />

       <field-descriptor
          name="keyUser"
          column="KEY_USER"
          jdbc-type="INTEGER"
       />

       <field-descriptor
          name="power"
          column="POWER"
          jdbc-type="VARCHAR"
       />

       <reference-descriptor
                name="user"
                class-ref="domain.admin.User"
                proxy="false"
                        refresh="true"
          >
         <foreignkey field-ref="keyUser"/>
        </reference-descriptor>
</class-descriptor>

<!-- End of definitions for class domain.HiperCar -->


In my database (mysql), I have 2 rows for SuperCar in SUPER_CAR table and 2 rows for HiperCar in HIPER_CAR table. I'm using PB API and when I read the User object, the list of objects materialized in simpleCars collection is 4 SuperCars or 4 Hipercars instead of 2 Supercars + 2 HiperCars.





Thanks, Nadir

_________________________________________________________________
Help STOP SPAM with the new MSN 8 and get 2 months FREE* http://join.msn.com/?page=features/junkmail



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



Reply via email to