You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by to...@apache.org on 2005/03/18 00:49:10 UTC
cvs commit: db-ojb/src/xdoclet/java/src/xdoclet/modules/ojb/model TableDef.java TorqueModelDef.java
tomdz 2005/03/17 15:49:10
Modified: src/xdoclet/test/xdoclet/modules/ojb/tests Tag:
OJB_1_0_RELEASE
ReferenceTagClassRefAttributeTests.java
RunAllTests.java
ReferenceTagDatabaseForeignkeyAttributeTests.java
ReferenceTagForeignkeyAttributeTests.java
ModifyInheritedTagClassRefAttributeTests.java
lib Tag: OJB_1_0_RELEASE xdoclet-ojb-module-1.2.2.jar
src/xdoclet/java/src/xdoclet/modules/ojb/model Tag:
OJB_1_0_RELEASE TableDef.java TorqueModelDef.java
Log:
Fixed last test issues for the XDoclet module
Revision Changes Path
No revision
No revision
1.6.2.1 +14 -0 db-ojb/src/xdoclet/test/xdoclet/modules/ojb/tests/ReferenceTagClassRefAttributeTests.java
Index: ReferenceTagClassRefAttributeTests.java
===================================================================
RCS file: /home/cvs/db-ojb/src/xdoclet/test/xdoclet/modules/ojb/tests/ReferenceTagClassRefAttributeTests.java,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -r1.6 -r1.6.2.1
--- ReferenceTagClassRefAttributeTests.java 29 Jun 2004 17:00:45 -0000 1.6
+++ ReferenceTagClassRefAttributeTests.java 17 Mar 2005 23:49:10 -0000 1.6.2.1
@@ -146,6 +146,13 @@
"<class-descriptor\n"+
" class=\"test.B\"\n"+
">\n"+
+ " <field-descriptor\n"+
+ " name=\"id\"\n"+
+ " column=\"id\"\n"+
+ " jdbc-type=\"INTEGER\"\n"+
+ " primarykey=\"true\"\n"+
+ " >\n"+
+ " </field-descriptor>\n"+
"</class-descriptor>",
runOjbXDoclet(OJB_DEST_FILE));
assertEqualsTorqueSchemaFile(
@@ -431,6 +438,13 @@
"<class-descriptor\n"+
" class=\"test.B\"\n"+
">\n"+
+ " <field-descriptor\n"+
+ " name=\"id\"\n"+
+ " column=\"id\"\n"+
+ " jdbc-type=\"INTEGER\"\n"+
+ " primarykey=\"true\"\n"+
+ " >\n"+
+ " </field-descriptor>\n"+
"</class-descriptor>",
runOjbXDoclet(OJB_DEST_FILE));
assertEqualsTorqueSchemaFile(
1.13.2.5 +6 -6 db-ojb/src/xdoclet/test/xdoclet/modules/ojb/tests/RunAllTests.java
Index: RunAllTests.java
===================================================================
RCS file: /home/cvs/db-ojb/src/xdoclet/test/xdoclet/modules/ojb/tests/RunAllTests.java,v
retrieving revision 1.13.2.4
retrieving revision 1.13.2.5
diff -u -r1.13.2.4 -r1.13.2.5
--- RunAllTests.java 15 Mar 2005 23:58:30 -0000 1.13.2.4
+++ RunAllTests.java 17 Mar 2005 23:49:10 -0000 1.13.2.5
@@ -50,8 +50,8 @@
suite.addTest(new TestSuite(ClassTagAttributesAttributeTests.class));
suite.addTest(new TestSuite(ClassTagDetermineExtendsAttributeTests.class));
suite.addTest(new TestSuite(ClassTagDocumentationAttributeTests.class));
- suite.addTest(new TestSuite(ClassTagFactoryClassAndMethodAttributeTests.class));*/
- suite.addTest(new TestSuite(ClassTagGenerateRepositoryInfoAttributeTests.class));/*
+ suite.addTest(new TestSuite(ClassTagFactoryClassAndMethodAttributeTests.class));
+ suite.addTest(new TestSuite(ClassTagGenerateRepositoryInfoAttributeTests.class));
suite.addTest(new TestSuite(ClassTagGenerateTableInfoAttributeTests.class));
suite.addTest(new TestSuite(ClassTagIncludeInheritedAttributeTests.class));
suite.addTest(new TestSuite(ClassTagInitializationMethodAttributeTests.class));
@@ -91,8 +91,8 @@
suite.addTest(new TestSuite(ReferenceTagAutoUpdateAttributeTests.class));
suite.addTest(new TestSuite(ReferenceTagClassRefAttributeTests.class));
suite.addTest(new TestSuite(ReferenceTagDatabaseForeignkeyAttributeTests.class));
- suite.addTest(new TestSuite(ReferenceTagDocumentationAttributeTests.class));*/
- suite.addTest(new TestSuite(ReferenceTagForeignkeyAttributeTests.class));/*
+ suite.addTest(new TestSuite(ReferenceTagDocumentationAttributeTests.class));
+ suite.addTest(new TestSuite(ReferenceTagForeignkeyAttributeTests.class));
suite.addTest(new TestSuite(ReferenceTagOtmDependentAttributeTests.class));
suite.addTest(new TestSuite(ReferenceTagProxyAttributeTests.class));
suite.addTest(new TestSuite(ReferenceTagRefreshAttributeTests.class));
@@ -104,8 +104,8 @@
suite.addTest(new TestSuite(CollectionTagAutoUpdateAttributeTests.class));
suite.addTest(new TestSuite(CollectionTagCollectionClassAttributeTests.class));
suite.addTest(new TestSuite(CollectionTagDocumentationAttributeTests.class));
- suite.addTest(new TestSuite(CollectionTagElementClassRefAttributeTests.class));*/
- suite.addTest(new TestSuite(CollectionTagForeignkeyAttributeTests.class));/*
+ suite.addTest(new TestSuite(CollectionTagElementClassRefAttributeTests.class));
+ suite.addTest(new TestSuite(CollectionTagForeignkeyAttributeTests.class));
suite.addTest(new TestSuite(CollectionTagIndirectionTableAttributeTests.class));
suite.addTest(new TestSuite(CollectionTagIndirectionTableDocumentationAttributesTests.class));
suite.addTest(new TestSuite(CollectionTagIndirectionTablePrimarykeysAttributeTests.class));
1.1.2.2 +19 -0 db-ojb/src/xdoclet/test/xdoclet/modules/ojb/tests/Attic/ReferenceTagDatabaseForeignkeyAttributeTests.java
Index: ReferenceTagDatabaseForeignkeyAttributeTests.java
===================================================================
RCS file: /home/cvs/db-ojb/src/xdoclet/test/xdoclet/modules/ojb/tests/Attic/ReferenceTagDatabaseForeignkeyAttributeTests.java,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- ReferenceTagDatabaseForeignkeyAttributeTests.java 1 Mar 2005 21:54:06 -0000 1.1.2.1
+++ ReferenceTagDatabaseForeignkeyAttributeTests.java 17 Mar 2005 23:49:10 -0000 1.1.2.2
@@ -277,6 +277,21 @@
" class=\"test.B\"\n"+
">\n"+
" <extent-class class-ref=\"test.C\"/>\n"+
+ " <field-descriptor\n"+
+ " name=\"idA\"\n"+
+ " column=\"idA\"\n"+
+ " jdbc-type=\"INTEGER\"\n"+
+ " primarykey=\"true\"\n"+
+ " >\n"+
+ " </field-descriptor>\n"+
+ " <field-descriptor\n"+
+ " name=\"idB\"\n"+
+ " column=\"idB\"\n"+
+ " jdbc-type=\"VARCHAR\"\n"+
+ " primarykey=\"true\"\n"+
+ " length=\"254\"\n"+
+ " >\n"+
+ " </field-descriptor>\n"+
"</class-descriptor>\n"+
"<class-descriptor\n"+
" class=\"test.C\"\n"+
@@ -311,6 +326,10 @@
" type=\"VARCHAR\"\n"+
" size=\"254\"\n"+
" />\n"+
+ " <foreign-key foreignTable=\"C\">\n"+
+ " <reference local=\"attrKeyA\" foreign=\"idA\"/>\n"+
+ " <reference local=\"attrKeyB\" foreign=\"idB\"/>\n"+
+ " </foreign-key>\n"+
" </table>\n"+
" <table name=\"C\">\n"+
" <column name=\"idA\"\n"+
1.6.2.3 +125 -0 db-ojb/src/xdoclet/test/xdoclet/modules/ojb/tests/ReferenceTagForeignkeyAttributeTests.java
Index: ReferenceTagForeignkeyAttributeTests.java
===================================================================
RCS file: /home/cvs/db-ojb/src/xdoclet/test/xdoclet/modules/ojb/tests/ReferenceTagForeignkeyAttributeTests.java,v
retrieving revision 1.6.2.2
retrieving revision 1.6.2.3
diff -u -r1.6.2.2 -r1.6.2.3
--- ReferenceTagForeignkeyAttributeTests.java 16 Mar 2005 23:54:33 -0000 1.6.2.2
+++ ReferenceTagForeignkeyAttributeTests.java 17 Mar 2005 23:49:10 -0000 1.6.2.3
@@ -751,12 +751,137 @@
" javaName=\"attrKey\"\n"+
" type=\"INTEGER\"\n"+
" />\n"+
+ " <foreign-key foreignTable=\"D\">\n"+
+ " <reference local=\"attrKey\" foreign=\"id\"/>\n"+
+ " </foreign-key>\n"+
" </table>\n"+
" <table name=\"B\">\n"+
" <column name=\"attrKey\"\n"+
" javaName=\"attrKey\"\n"+
" type=\"INTEGER\"\n"+
" />\n"+
+ " <foreign-key foreignTable=\"D\">\n"+
+ " <reference local=\"attrKey\" foreign=\"id\"/>\n"+
+ " </foreign-key>\n"+
+ " </table>\n"+
+ " <table name=\"D\">\n"+
+ " <column name=\"id\"\n"+
+ " javaName=\"id\"\n"+
+ " type=\"INTEGER\"\n"+
+ " primaryKey=\"true\"\n"+
+ " required=\"true\"\n"+
+ " />\n"+
+ " </table>\n"+
+ "</database>",
+ runTorqueXDoclet(TORQUE_DEST_FILE, "ojbtest"));
+ }
+
+ // Test: referenced type has a multiple subtypes that map to different tables
+ public void testForeignkey14()
+ {
+ addClass(
+ "test.A",
+ "package test;\n"+
+ "/** @ojb.class */\n"+
+ "public class A {\n"+
+ " /** @ojb.field */\n"+
+ " private int attrKey;\n"+
+ " /** @ojb.reference foreignkey=\"attrKey\" */\n"+
+ " private test.B attr;\n"+
+ "}\n");
+ addClass(
+ "test.B",
+ "package test;\n"+
+ "/** @ojb.class generate-repository-info=\"false\" */\n"+
+ "public interface B {}\n");
+ addClass(
+ "test.C",
+ "package test;\n"+
+ "/** @ojb.class */\n"+
+ "public class C implements B {\n"+
+ " /** @ojb.field primarykey=\"true\" */\n"+
+ " private int id;\n"+
+ "}\n");
+ addClass(
+ "test.D",
+ "package test;\n"+
+ "/** @ojb.class */\n"+
+ "public class D implements B {\n"+
+ " /** @ojb.field primarykey=\"true\" */\n"+
+ " private int id;\n"+
+ "}\n");
+
+ assertEqualsOjbDescriptorFile(
+ "<class-descriptor\n"+
+ " class=\"test.A\"\n"+
+ " table=\"A\"\n"+
+ ">\n"+
+ " <field-descriptor\n"+
+ " name=\"attrKey\"\n"+
+ " column=\"attrKey\"\n"+
+ " jdbc-type=\"INTEGER\"\n"+
+ " >\n"+
+ " </field-descriptor>\n"+
+ " <reference-descriptor\n"+
+ " name=\"attr\"\n"+
+ " class-ref=\"test.B\"\n"+
+ " >\n"+
+ " <foreignkey field-ref=\"attrKey\"/>\n"+
+ " </reference-descriptor>\n"+
+ "</class-descriptor>\n"+
+ "<class-descriptor\n"+
+ " class=\"test.B\"\n"+
+ ">\n"+
+ " <extent-class class-ref=\"test.C\"/>\n"+
+ " <extent-class class-ref=\"test.D\"/>\n"+
+ " <field-descriptor\n"+
+ " name=\"id\"\n"+
+ " column=\"id\"\n"+
+ " jdbc-type=\"INTEGER\"\n"+
+ " primarykey=\"true\"\n"+
+ " >\n"+
+ " </field-descriptor>\n"+
+ "</class-descriptor>\n"+
+ "<class-descriptor\n"+
+ " class=\"test.C\"\n"+
+ " table=\"C\"\n"+
+ ">\n"+
+ " <field-descriptor\n"+
+ " name=\"id\"\n"+
+ " column=\"id\"\n"+
+ " jdbc-type=\"INTEGER\"\n"+
+ " primarykey=\"true\"\n"+
+ " >\n"+
+ " </field-descriptor>\n"+
+ "</class-descriptor>\n"+
+ "<class-descriptor\n"+
+ " class=\"test.D\"\n"+
+ " table=\"D\"\n"+
+ ">\n"+
+ " <field-descriptor\n"+
+ " name=\"id\"\n"+
+ " column=\"id\"\n"+
+ " jdbc-type=\"INTEGER\"\n"+
+ " primarykey=\"true\"\n"+
+ " >\n"+
+ " </field-descriptor>\n"+
+ "</class-descriptor>",
+ runOjbXDoclet(OJB_DEST_FILE));
+ assertEqualsTorqueSchemaFile(
+ "<database name=\"ojbtest\">\n"+
+ " <table name=\"A\">\n"+
+ " <column name=\"attrKey\"\n"+
+ " javaName=\"attrKey\"\n"+
+ " type=\"INTEGER\"\n"+
+ " />\n"+
+ " </table>\n"+
+ " <table name=\"C\">\n"+
+ " <column name=\"id\"\n"+
+ " javaName=\"id\"\n"+
+ " type=\"INTEGER\"\n"+
+ " primaryKey=\"true\"\n"+
+ " required=\"true\"\n"+
+ " />\n"+
" </table>\n"+
" <table name=\"D\">\n"+
" <column name=\"id\"\n"+
1.3.2.1 +10 -6 db-ojb/src/xdoclet/test/xdoclet/modules/ojb/tests/ModifyInheritedTagClassRefAttributeTests.java
Index: ModifyInheritedTagClassRefAttributeTests.java
===================================================================
RCS file: /home/cvs/db-ojb/src/xdoclet/test/xdoclet/modules/ojb/tests/ModifyInheritedTagClassRefAttributeTests.java,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -u -r1.3 -r1.3.2.1
--- ModifyInheritedTagClassRefAttributeTests.java 5 Apr 2004 12:16:16 -0000 1.3
+++ ModifyInheritedTagClassRefAttributeTests.java 17 Mar 2005 23:49:10 -0000 1.3.2.1
@@ -142,9 +142,6 @@
" javaName=\"attrKey\"\n"+
" type=\"INTEGER\"\n"+
" />\n"+
- " <foreign-key foreignTable=\"C\">\n"+
- " <reference local=\"attrKey\" foreign=\"id\"/>\n"+
- " </foreign-key>\n"+
" </table>\n"+
" <table name=\"C\">\n"+
" <column name=\"id\"\n"+
@@ -241,6 +238,13 @@
" class=\"test.C\"\n"+
">\n"+
" <extent-class class-ref=\"test.D\"/>\n"+
+ " <field-descriptor\n"+
+ " name=\"id\"\n"+
+ " column=\"id\"\n"+
+ " jdbc-type=\"INTEGER\"\n"+
+ " primarykey=\"true\"\n"+
+ " >\n"+
+ " </field-descriptor>\n"+
"</class-descriptor>\n"+
"<class-descriptor\n"+
" class=\"test.D\"\n"+
@@ -262,6 +266,9 @@
" javaName=\"attrKey\"\n"+
" type=\"INTEGER\"\n"+
" />\n"+
+ " <foreign-key foreignTable=\"D\">\n"+
+ " <reference local=\"attrKey\" foreign=\"id\"/>\n"+
+ " </foreign-key>\n"+
" </table>\n"+
" <table name=\"B\">\n"+
" <column name=\"attrKey\"\n"+
@@ -538,9 +545,6 @@
" javaName=\"attrKey\"\n"+
" type=\"INTEGER\"\n"+
" />\n"+
- " <foreign-key foreignTable=\"C\">\n"+
- " <reference local=\"attrKey\" foreign=\"id\"/>\n"+
- " </foreign-key>\n"+
" </table>\n"+
" <table name=\"B\">\n"+
" <column name=\"attrKey\"\n"+
No revision
No revision
1.1.2.7 +49 -45 db-ojb/lib/Attic/xdoclet-ojb-module-1.2.2.jar
<<Binary file>>
No revision
No revision
1.5.2.3 +9 -35 db-ojb/src/xdoclet/java/src/xdoclet/modules/ojb/model/TableDef.java
Index: TableDef.java
===================================================================
RCS file: /home/cvs/db-ojb/src/xdoclet/java/src/xdoclet/modules/ojb/model/TableDef.java,v
retrieving revision 1.5.2.2
retrieving revision 1.5.2.3
diff -u -r1.5.2.2 -r1.5.2.3
--- TableDef.java 15 Mar 2005 23:58:30 -0000 1.5.2.2
+++ TableDef.java 17 Mar 2005 23:49:10 -0000 1.5.2.3
@@ -121,46 +121,20 @@
/**
* Adds a foreignkey to this table.
*
- * @param relationName The name of the relation represented by the foreignkey
- * @param remoteTable The referenced table
- * @param localFields The local fields
- * @param remoteFields The remote fields
+ * @param relationName The name of the relation represented by the foreignkey
+ * @param remoteTable The referenced table
+ * @param localColumns The local columns
+ * @param remoteColumns The remote columns
*/
- public void addForeignkey(String relationName, String remoteTable, List localFields, List remoteFields)
+ public void addForeignkey(String relationName, String remoteTable, List localColumns, List remoteColumns)
{
- ForeignkeyDef foreignkeyDef = new ForeignkeyDef(relationName, remoteTable);
- FieldDescriptorDef fieldDef;
- String localColumn;
- String remoteColumn;
+ ForeignkeyDef foreignkeyDef = new ForeignkeyDef(relationName, remoteTable);
// the field arrays have the same length if we already checked the constraints
- for (int idx = 0; idx < localFields.size(); idx++)
+ for (int idx = 0; idx < localColumns.size(); idx++)
{
- if (localFields.get(idx) instanceof FieldDescriptorDef)
- {
- fieldDef = (FieldDescriptorDef)localFields.get(idx);
- localColumn = fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_COLUMN);
- }
- else
- {
- localColumn = localFields.get(idx).toString();
- }
- if (remoteFields.get(idx) instanceof FieldDescriptorDef)
- {
- fieldDef = (FieldDescriptorDef)remoteFields.get(idx);
- // we can only generate a database foreignkey if the target fields are really present
- // in the remote table, i.e. if the field is not virtual
- if (fieldDef.getBooleanProperty(PropertyHelper.OJB_PROPERTY_VIRTUAL_FIELD, false))
- {
- return;
- }
- remoteColumn = fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_COLUMN);
- }
- else
- {
- remoteColumn = remoteFields.get(idx).toString();
- }
- foreignkeyDef.addColumnPair(localColumn, remoteColumn);
+ foreignkeyDef.addColumnPair((String)localColumns.get(idx),
+ (String)remoteColumns.get(idx));
}
// we got to determine whether this foreignkey is already present
1.6.2.7 +57 -14 db-ojb/src/xdoclet/java/src/xdoclet/modules/ojb/model/TorqueModelDef.java
Index: TorqueModelDef.java
===================================================================
RCS file: /home/cvs/db-ojb/src/xdoclet/java/src/xdoclet/modules/ojb/model/TorqueModelDef.java,v
retrieving revision 1.6.2.6
retrieving revision 1.6.2.7
diff -u -r1.6.2.6 -r1.6.2.7
--- TorqueModelDef.java 16 Mar 2005 23:54:33 -0000 1.6.2.6
+++ TorqueModelDef.java 17 Mar 2005 23:49:10 -0000 1.6.2.7
@@ -227,7 +227,7 @@
ArrayList localFields = ownerClassDef.getFields(refDef.getProperty(PropertyHelper.OJB_PROPERTY_FOREIGNKEY));
ArrayList remoteFields = referencedClassDef.getPrimaryKeys();
- tableDef.addForeignkey(name, tableName, localFields, remoteFields);
+ tableDef.addForeignkey(name, tableName, getColumns(localFields), getColumns(remoteFields));
}
catch (NoSuchFieldException ex)
{
@@ -316,7 +316,7 @@
elementTableDef = new TableDef(elementTableName);
addTable(elementTableDef);
}
- elementTableDef.addForeignkey(name, tableDef.getName(), localFields, remoteFields);
+ elementTableDef.addForeignkey(name, tableDef.getName(), getColumns(localFields), getColumns(remoteFields));
processedTables.put(elementTableName, null);
}
}
@@ -328,6 +328,25 @@
}
/**
+ * Extracts the list of columns from the given field list.
+ *
+ * @param fields The fields
+ * @return The corresponding columns
+ */
+ private List getColumns(List fields)
+ {
+ ArrayList columns = new ArrayList();
+
+ for (Iterator it = fields.iterator(); it.hasNext();)
+ {
+ FieldDescriptorDef fieldDef = (FieldDescriptorDef)it.next();
+
+ columns.add(fieldDef.getProperty(PropertyHelper.OJB_PROPERTY_COLUMN));
+ }
+ return columns;
+ }
+
+ /**
* Checks whether the given class maps to a different table but also has the given collection.
*
* @param origCollDef The original collection to search for
@@ -355,14 +374,16 @@
* Tries to return the single target table to which the given foreign key columns map in
* all m:n collections that target this indirection table.
*
+ * @param targetClassDef The original target class
* @param indirectionTable The indirection table
* @param foreignKeys The foreign keys columns in the indirection table pointing back to the
* class' table
* @return The table name or <code>null</code> if there is not exactly one table
*/
- private String getTargetTable(ModelDef modelDef, String indirectionTable, String foreignKeys)
+ private String getTargetTable(ClassDescriptorDef targetClassDef, String indirectionTable, String foreignKeys)
{
- String tableName = null;
+ ModelDef modelDef = (ModelDef)targetClassDef.getOwner();
+ String tableName = null;
for (Iterator classIt = modelDef.getClasses(); classIt.hasNext();)
{
@@ -396,7 +417,16 @@
}
}
}
- return tableName;
+ if (tableName == null)
+ {
+ // no fitting collection found -> indirection table with only one collection
+ // we have to check whether the hierarchy of the target class maps to one table only
+ return getHierarchyTable(targetClassDef);
+ }
+ else
+ {
+ return tableName;
+ }
}
/**
@@ -409,25 +439,38 @@
*/
private String getHierarchyTable(ClassDescriptorDef classDef)
{
- boolean mapsToTable = classDef.getBooleanProperty(PropertyHelper.OJB_PROPERTY_GENERATE_TABLE_INFO, true);
- String tableName = mapsToTable ? classDef.getProperty(PropertyHelper.OJB_PROPERTY_TABLE) : null;
+ ArrayList queue = new ArrayList();
+ String tableName = null;
- for (Iterator it = classDef.getAllExtentClasses(); it.hasNext();)
+ queue.add(classDef);
+
+ while (!queue.isEmpty())
{
- ClassDescriptorDef curSubTypeDef = (ClassDescriptorDef)it.next();
+ ClassDescriptorDef curClassDef = (ClassDescriptorDef)queue.get(0);
- if (curSubTypeDef.getBooleanProperty(PropertyHelper.OJB_PROPERTY_GENERATE_TABLE_INFO, true))
+ queue.remove(0);
+
+ if (curClassDef.getBooleanProperty(PropertyHelper.OJB_PROPERTY_GENERATE_TABLE_INFO, true))
{
if (tableName != null)
{
- if (!tableName.equals(curSubTypeDef.getProperty(PropertyHelper.OJB_PROPERTY_TABLE)))
+ if (!tableName.equals(curClassDef.getProperty(PropertyHelper.OJB_PROPERTY_TABLE)))
{
return null;
}
}
else
{
- tableName = curSubTypeDef.getProperty(PropertyHelper.OJB_PROPERTY_TABLE);
+ tableName = curClassDef.getProperty(PropertyHelper.OJB_PROPERTY_TABLE);
+ }
+ }
+ for (Iterator it = curClassDef.getExtentClasses(); it.hasNext();)
+ {
+ curClassDef = (ClassDescriptorDef)it.next();
+
+ if (curClassDef.getReference("super") == null)
+ {
+ queue.add(curClassDef);
}
}
}
@@ -505,8 +548,8 @@
ArrayList remotePrimFields = elementClassDef.getPrimaryKeys();
String localKeyList = collDef.getProperty(PropertyHelper.OJB_PROPERTY_FOREIGNKEY);
String remoteKeyList = collDef.getProperty(PropertyHelper.OJB_PROPERTY_REMOTE_FOREIGNKEY);
- String ownerTable = getTargetTable(modelDef, tableName, localKeyList);
- String elementTable = getTargetTable(modelDef, tableName, remoteKeyList);
+ String ownerTable = getTargetTable(ownerClassDef, tableName, localKeyList);
+ String elementTable = getTargetTable(elementClassDef, tableName, remoteKeyList);
CommaListIterator localKeys = new CommaListIterator(localKeyList);
CommaListIterator localKeyDocs = new CommaListIterator(collDef.getProperty(PropertyHelper.OJB_PROPERTY_FOREIGNKEY_DOCUMENTATION));
CommaListIterator remoteKeys = new CommaListIterator(remoteKeyList);
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org