Author: steve.ebersole(a)jboss.com
Date: 2009-10-28 12:05:29 -0400 (Wed, 28 Oct 2009)
New Revision: 17868
Modified:
core/trunk/core/src/main/java/org/hibernate/cfg/Configuration.java
Log:
HHH-1012 - Index not created by SchemaUpdate
Modified: core/trunk/core/src/main/java/org/hibernate/cfg/Configuration.java
===================================================================
--- core/trunk/core/src/main/java/org/hibernate/cfg/Configuration.java 2009-10-28 15:49:36
UTC (rev 17867)
+++ core/trunk/core/src/main/java/org/hibernate/cfg/Configuration.java 2009-10-28 16:05:29
UTC (rev 17868)
@@ -130,6 +130,7 @@
import org.hibernate.secure.JACCConfiguration;
import org.hibernate.tool.hbm2ddl.DatabaseMetadata;
import org.hibernate.tool.hbm2ddl.TableMetadata;
+import org.hibernate.tool.hbm2ddl.IndexMetadata;
import org.hibernate.type.SerializationException;
import org.hibernate.type.Type;
import org.hibernate.util.ArrayHelper;
@@ -1068,26 +1069,35 @@
}
}
- }
-
- /*//broken, 'cos we don't generate these with names in SchemaExport
- subIter = table.getIndexIterator();
- while ( subIter.hasNext() ) {
- Index index = (Index) subIter.next();
- if ( !index.isForeignKey() || !dialect.hasImplicitIndexForForeignKey() ) {
- if ( tableInfo==null || tableInfo.getIndexMetadata( index.getFilterName() ) == null
) {
- script.add( index.sqlCreateString(dialect, mapping) );
+ Iterator subIter = table.getIndexIterator();
+ while ( subIter.hasNext() ) {
+ final Index index = (Index) subIter.next();
+ // Skip if index already exists
+ if ( tableInfo != null && StringHelper.isNotEmpty( index.getName() ) ) {
+ final IndexMetadata meta = tableInfo.getIndexMetadata( index.getName() );
+ if ( meta != null ) {
+ continue;
+ }
}
+ script.add(
+ index.sqlCreateString(
+ dialect,
+ mapping,
+ defaultCatalog,
+ defaultSchema
+ )
+ );
}
+
+//broken, 'cos we don't generate these with names in SchemaExport
+// subIter = table.getUniqueKeyIterator();
+// while ( subIter.hasNext() ) {
+// UniqueKey uk = (UniqueKey) subIter.next();
+// if ( tableInfo==null || tableInfo.getIndexMetadata( uk.getFilterName() ) == null )
{
+// script.add( uk.sqlCreateString(dialect, mapping) );
+// }
+// }
}
- //broken, 'cos we don't generate these with names in SchemaExport
- subIter = table.getUniqueKeyIterator();
- while ( subIter.hasNext() ) {
- UniqueKey uk = (UniqueKey) subIter.next();
- if ( tableInfo==null || tableInfo.getIndexMetadata( uk.getFilterName() ) == null ) {
- script.add( uk.sqlCreateString(dialect, mapping) );
- }
- }*/
}
iter = iterateGenerators( dialect );
Show replies by date