How about this:
/**
* @ojb.class table="A"
*/
class A
{
/**
* @ojb.field column="A_ID"
* nullable="false"
* primarykey="true"
* autoincrement="ojb"
*/
private Integer id;
/**
* @ojb.field column="A_NAME"
* length="40"
* nullable="false"
*/
private String name;
}
/**
* @ojb.class table="B"
*/
class B
{
/**
* @ojb.field column="B_ID"
* nullable="false"
* primarykey="true"
* autoincrement="ojb"
*/
private Integer id;
/**
* @ojb.field column="B_NAME"
* length="40"
* nullable="false"
*/
private String name;
}
/**
* @ojb.class table="C"
*/
class C
{
/**
* @ojb.field column="C_ID"
* nullable="false"
* primarykey="true"
* autoincrement="ojb"
*/
private Integer id;
/**
* @ojb.field column="C_NAME"
* length="40"
* nullable="false"
*/
private String name;
}
/**
* @ojb.class table="A_B_REL"
*/
class AandB
{
/**
* @ojb.field column="A_ID"
* nullable="false"
* primarykey="true"
*/
private Integer aId;
/**
* @ojb.field column="B_ID"
* nullable="false"
* primarykey="true"
*/
private Integer bId;
/**
* @ojb.field column="DISPLAY_SEQUENCE"
* nullable="false"
*/
private Integer displaySequence;
}
/**
* @ojb.class table="B_C_REL"
*/
class BandC
{
/**
* @ojb.field column="A_ID"
* nullable="false"
* primarykey="true"
*/
private Integer aId;
/**
* @ojb.field column="B_ID"
* nullable="false"
* primarykey="true"
*/
private Integer bId;
/**
* @ojb.field column="C_ID"
* nullable="false"
* primarykey="true"
*/
private Integer cId;
/**
* @ojb.field column="DISPLAY_SEQUENCE"
* nullable="false"
*/
private Integer displaySequence;
/**
* @ojb.reference foreignkey="aId,bId"
*/
private AandB theAandB;
}
The generated repository_user.xml would be:
<class-descriptor
class="A"
table="A"
>
<field-descriptor
name="id"
column="A_ID"
jdbc-type="INTEGER"
primarykey="true"
nullable="false"
autoincrement="true"
>
</field-descriptor>
<field-descriptor
name="name"
column="A_NAME"
jdbc-type="VARCHAR"
nullable="false"
length="40"
>
</field-descriptor>
</class-descriptor>
<class-descriptor
class="AandB"
table="A_B_REL"
>
<field-descriptor
name="aId"
column="A_ID"
jdbc-type="INTEGER"
primarykey="true"
nullable="false"
>
</field-descriptor>
<field-descriptor
name="bId"
column="B_ID"
jdbc-type="INTEGER"
primarykey="true"
nullable="false"
>
</field-descriptor>
<field-descriptor
name="displaySequence"
column="DISPLAY_SEQUENCE"
jdbc-type="INTEGER"
nullable="false"
>
</field-descriptor>
</class-descriptor>
<class-descriptor
class="B"
table="B"
>
<field-descriptor
name="id"
column="B_ID"
jdbc-type="INTEGER"
primarykey="true"
nullable="false"
autoincrement="true"
>
</field-descriptor>
<field-descriptor
name="name"
column="B_NAME"
jdbc-type="VARCHAR"
nullable="false"
length="40"
>
</field-descriptor>
</class-descriptor>
<class-descriptor
class="BandC"
table="B_C_REL"
>
<field-descriptor
name="aId"
column="A_ID"
jdbc-type="INTEGER"
primarykey="true"
nullable="false"
>
</field-descriptor>
<field-descriptor
name="bId"
column="B_ID"
jdbc-type="INTEGER"
primarykey="true"
nullable="false"
>
</field-descriptor>
<field-descriptor
name="cId"
column="C_ID"
jdbc-type="INTEGER"
primarykey="true"
nullable="false"
>
</field-descriptor>
<field-descriptor
name="displaySequence"
column="DISPLAY_SEQUENCE"
jdbc-type="INTEGER"
nullable="false"
>
</field-descriptor>
<reference-descriptor
name="theAandB"
class-ref="AandB"
>
<foreignkey field-ref="aId"/>
<foreignkey field-ref="bId"/>
</reference-descriptor>
</class-descriptor>
<class-descriptor
class="C"
table="C"
>
<field-descriptor
name="id"
column="C_ID"
jdbc-type="INTEGER"
primarykey="true"
nullable="false"
autoincrement="true"
>
</field-descriptor>
<field-descriptor
name="name"
column="C_NAME"
jdbc-type="VARCHAR"
nullable="false"
length="40"
>
</field-descriptor>
</class-descriptor>
and the generated Database Schema:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE database SYSTEM "http://db.apache.org/torque/dtd/database_3_0_1.dtd">
<!-- Generated by the xdoclet-ojb module -->
<database name="ojb_blank">
<table name="A">
<column name="A_ID"
javaName="id"
type="INTEGER"
primaryKey="true"
required="true"
/>
<column name="A_NAME"
javaName="name"
type="VARCHAR"
required="true"
size="40"
/>
</table>
<table name="A_B_REL">
<column name="A_ID"
javaName="aId"
type="INTEGER"
primaryKey="true"
required="true"
/>
<column name="B_ID"
javaName="bId"
type="INTEGER"
primaryKey="true"
required="true"
/>
<column name="DISPLAY_SEQUENCE"
javaName="displaySequence"
type="INTEGER"
required="true"
/>
</table>
<table name="B">
<column name="B_ID"
javaName="id"
type="INTEGER"
primaryKey="true"
required="true"
/>
<column name="B_NAME"
javaName="name"
type="VARCHAR"
required="true"
size="40"
/>
</table>
<table name="B_C_REL">
<column name="A_ID"
javaName="aId"
type="INTEGER"
primaryKey="true"
required="true"
/>
<column name="B_ID"
javaName="bId"
type="INTEGER"
primaryKey="true"
required="true"
/>
<column name="C_ID"
javaName="cId"
type="INTEGER"
primaryKey="true"
required="true"
/>
<column name="DISPLAY_SEQUENCE"
javaName="displaySequence"
type="INTEGER"
required="true"
/>
<foreign-key foreignTable="A_B_REL">
<reference local="A_ID" foreign="A_ID"/>
<reference local="B_ID" foreign="B_ID"/>
</foreign-key>
</table>
<table name="C">
<column name="C_ID"
javaName="id"
type="INTEGER"
primaryKey="true"
required="true"
/>
<column name="C_NAME"
javaName="name"
type="VARCHAR"
required="true"
size="40"
/>
</table>
</database>
Tom
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]