I am having a generation problem. Here is a minimal test case that demonstrates the problem
3 tables ItemCategory (CAT_ID) ItemSubCategory (CAT_ID, SUB_CAT_ID) Item (CAT_ID, SUB_CAT_ID, ITEM_ID) Each SubCategory belongs to one and only one Category, each Item belongs to one and only one SubCategory. To allow traversal from Category->Item(s), SubCategory->Item(s), Item->SubCategory, and Item->Category I attempted to place a foreign key relationship from item to category and item to subcategory with the following schema: <?xml version="1.0"?> <!DOCTYPE database SYSTEM "http://jakarta.apache.org/turbine/dtd/database.dtd"> <!-- Created from schema.xml.all generated by JDBCToXMLSchema --> <database> <table javaName="ItemCategory" name="CATEGORY"> <column javaName="CatId" name="CAT_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> </table> <table javaName="ItemSubCategory" name="SUBCAT"> <column javaName="CatId" name="CAT_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> <column javaName="SubCatId" name="SUB_CAT_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> </table> <table javaName="Item" name="ITEM"> <column javaName="CatId" name="CAT_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> <column javaName="SubCatId" name="SUB_CAT_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> <column javaName="ItemId" name="ITEM_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> <foreign-key foreignTable="CATEGORY"> <reference foreign="CAT_ID" local="CAT_ID"/> </foreign-key> <foreign-key foreignTable="SUBCAT"> <reference foreign="CAT_ID" local="CAT_ID"/> <reference foreign="SUB_CAT_ID" local="SUB_CAT_ID"/> </foreign-key> </table> </database> This generates invalid code - creating two complete sets of accessors for Items to BaseItemSubCategory: "List collItems;" appears twice, "Item getItems()" appears twice, etc. However, if you swap the foreign-key definitions it works as expected (this schema) <?xml version="1.0"?> <!DOCTYPE database SYSTEM "http://jakarta.apache.org/turbine/dtd/database.dtd"> <!-- Created from schema.xml.all generated by JDBCToXMLSchema --> <database> <table javaName="ItemCategory" name="CATEGORY"> <column javaName="CatId" name="CAT_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> </table> <table javaName="ItemSubCategory" name="SUBCAT"> <column javaName="CatId" name="CAT_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> <column javaName="SubCatId" name="SUB_CAT_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> </table> <table javaName="Item" name="ITEM"> <column javaName="CatId" name="CAT_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> <column javaName="SubCatId" name="SUB_CAT_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> <column javaName="ItemId" name="ITEM_ID" primaryKey="true" required="true" size="2" type="DECIMAL"/> <foreign-key foreignTable="SUBCAT"> <reference foreign="CAT_ID" local="CAT_ID"/> <reference foreign="SUB_CAT_ID" local="SUB_CAT_ID"/> </foreign-key> <foreign-key foreignTable="CATEGORY"> <reference foreign="CAT_ID" local="CAT_ID"/> </foreign-key> </table> </database> Also, we ran into a name conflict - having a table javaName of "Category" will not work due to a getCategory in BaseItem. Problematic but we worked around it. -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
