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]
