Hello!
Right now I'm testing whether the Persistence Broker of ojb can handle multiple 
column foreign key relations. My object-relational mapping looks something like 
this:

<class-descriptor table="FOO" class="Foo">
 <field-descriptor jdbc-type="INTEGER" column="ID_1" name="id1" 
primarykey="true" autoincrement="false"/>  <field-descriptor 
jdbc-type="INTEGER" column="ID_2" name="id2" primarykey="true" 
autoincrement="false"/>  <field-descriptor jdbc-type="INTEGER" column="ID_3" 
name="id3" primarykey="true" autoincrement="false"/>  <field-descriptor 
jdbc-type="CHAR" column="ID_4" name="id4" primarykey="true" 
autoincrement="false"/>
    
 <!-- reference to Bar -->
 <reference-descriptor auto-retrieve="false" class-ref="Bar" name="bar">
  <foreignkey field-ref="id1"/>
  <foreignkey field-ref="id2"/>
  <foreignkey field-ref="id3"/>
 </reference-descriptor>

<!-- reference to Batz -->
 <reference-descriptor auto-retrieve="true" class-ref="Batz" name="batz">
  <foreignkey field-ref="id4"/>
 </reference-descriptor>
</class-descriptor>


<class-descriptor table="BAR" class="Bar">
 <field-descriptor jdbc-type="INTEGER" column="ID_1" name="id1" 
primarykey="true" autoincrement="false"/>  <field-descriptor 
jdbc-type="INTEGER" column="ID_2" name="id2" primarykey="true" 
autoincrement="false"/>  <field-descriptor jdbc-type="INTEGER" column="ID_3" 
name="id3" primarykey="true" autoincrement="false"/>

<collection-descriptor auto-retrieve="false" element-class-ref="Foo" 
name="foos">  <inverse-foreignkey field-ref="id1"/>  <inverse-foreignkey 
field-ref="id2"/>  <inverse-foreignkey field-ref="id3"/> 
</collection-descriptor>

This works fine. If I have some Foo-Instance I'm able to load the Bar-Instance. 
If I have a Bar-Instance I can load the Foo-Instance. But if you start mixing 
the sequence of the primary key fields and foreign key fields, the 
PersistenceBroker won't find the references anymore. If I have an instance of 
Foo, it fails because the Method BrokerHelper.getKeyValues(ClassDescriptor cld, 
Identity oid, boolean convertToSql) relys on sequence but not on column names. 
If I have an instance of Bar, it fails because the Method 
QueryReferenceBroker.getFKQuery1toN(Object obj, ClassDescriptor cld, 
CollectionDescriptor cod) also relys on the sequence but not on column names.

Anyway, It should be no problem for me to provide the object-relational-mapping 
in the correct sequence. But in my opinion it is a source for a lot of mistakes 
that are hard to find. So I was thinking of patching ojb in this special case, 
but I don't have a clue about side effects or time and effort to do this. 

Maybe someone of the developers can give me a hint.

Thank you

Volker

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

Reply via email to