[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