[jboss-cvs] JBossAS SVN: r57400 - branches/JBoss_4_0_4_GA_CP/server/src/main/org/jboss/ejb/plugins/cmp/jdbc

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 3 15:31:13 EDT 2006


Author: ryan.campbell at jboss.com
Date: 2006-10-03 15:31:13 -0400 (Tue, 03 Oct 2006)
New Revision: 57400

Modified:
   branches/JBoss_4_0_4_GA_CP/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStartCommand.java
Log:
ASPATCH-84: JBAS-3362: Foreign key index is created on the wrong table

Modified: branches/JBoss_4_0_4_GA_CP/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStartCommand.java
===================================================================
--- branches/JBoss_4_0_4_GA_CP/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStartCommand.java	2006-10-03 19:02:43 UTC (rev 57399)
+++ branches/JBoss_4_0_4_GA_CP/server/src/main/org/jboss/ejb/plugins/cmp/jdbc/JDBCStartCommand.java	2006-10-03 19:31:13 UTC (rev 57400)
@@ -935,42 +935,30 @@
       if(rmd.isTableMappingStyle())
       {
          tableName = rmd.getDefaultTableName();
+         createFKIndex(rmd.getLeftRelationshipRole(), dataSource, tableName);
+         createFKIndex(rmd.getRightRelationshipRole(), dataSource, tableName);
       }
-      else
+      else if(field.hasForeignKey())
       {
-         tableName = field.getRelatedCMRField().getEntity().getQualifiedTableName();
+         tableName = field.getEntity().getQualifiedTableName();
+         createFKIndex(field.getRelatedCMRField().getMetaData(), dataSource, tableName);
       }
+   }
 
-      JDBCRelationshipRoleMetaData left, right;
-
-      left = rmd.getLeftRelationshipRole();
-      right = rmd.getRightRelationshipRole();
-
-      Collection kfl = left.getKeyFields();
-      JDBCCMPFieldMetaData fi;
+   private void createFKIndex(JDBCRelationshipRoleMetaData metadata, DataSource dataSource, String tableName)
+      throws DeploymentException
+   {
+      Collection kfl = metadata.getKeyFields();
       Iterator it = kfl.iterator();
-
       while(it.hasNext())
       {
-         fi = (JDBCCMPFieldMetaData) it.next();
-         if(left.isIndexed())
+         JDBCCMPFieldMetaData fi = (JDBCCMPFieldMetaData) it.next();
+         if(metadata.isIndexed())
          {
             createIndex(dataSource, tableName, fi.getFieldName(), createIndexSQL(fi, tableName));
             idxCount++;
          }
       }
-
-      Collection kfr = right.getKeyFields();
-      it = kfr.iterator();
-      while(it.hasNext())
-      {
-         fi = (JDBCCMPFieldMetaData) it.next();
-         if(right.isIndexed())
-         {
-            createIndex(dataSource, tableName, fi.getFieldName(), createIndexSQL(fi, tableName));
-            idxCount++;
-         }
-      }
    }
 
    private static String createIndexSQL(JDBCCMPFieldMetaData fi, String tableName)




More information about the jboss-cvs-commits mailing list