[hibernate-commits] Hibernate SVN: r17868 - core/trunk/core/src/main/java/org/hibernate/cfg.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Oct 28 12:05:30 EDT 2009


Author: steve.ebersole at 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 );



More information about the hibernate-commits mailing list