[hibernate-commits] Hibernate SVN: r14072 - branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Tue Oct 9 13:58:42 EDT 2007


Author: dan.j.allen
Date: 2007-10-09 13:58:42 -0400 (Tue, 09 Oct 2007)
New Revision: 14072

Modified:
   branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/H2MetaDataDialect.java
Log:
HBX-965 - conditionally exclude catalog name in H2 if using builds < 55
HBX-961 - fix invalid column name in suggested primary key query


Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/H2MetaDataDialect.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/H2MetaDataDialect.java	2007-10-09 15:38:29 UTC (rev 14071)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/H2MetaDataDialect.java	2007-10-09 17:58:42 UTC (rev 14072)
@@ -8,6 +8,7 @@
 import java.util.Map;
 
 import org.hibernate.util.StringHelper;
+import org.hibernate.util.ReflectHelper;
 
 
 /**
@@ -18,16 +19,35 @@
  */
 public class H2MetaDataDialect extends JDBCMetaDataDialect {
 
-	/*protected void putTablePart(Map element, ResultSet tableRs) throws SQLException {		
+	private static boolean understandsCatalogName = true;
+
+	public H2MetaDataDialect() {
+		super();
+		try {
+			Class constants = ReflectHelper.classForName( "org.h2.engine.Constants" );
+			Integer build = (Integer)constants.getDeclaredField( "BUILD_ID" ).get( null );
+			if ( build.intValue() < 55 ) {
+				understandsCatalogName = false;
+			}
+		}
+        catch( Throwable e ) {
+            // ignore (probably H2 not in the classpath)
+        }
+	}
+
+	protected void putTablePart(Map element, ResultSet tableRs) throws SQLException {		
 		super.putTablePart( element, tableRs );
-		element.put("TABLE_CAT", null);
+		if ( !understandsCatalogName ) {
+			element.put( "TABLE_CAT", null );
+		}
 	}
 	
 	protected void putExportedKeysPart(Map element, ResultSet rs) throws SQLException {		
 		super.putExportedKeysPart( element, rs );
-		element.put( "PKTABLE_CAT", null);
-		element.put( "FKTABLE_CAT", null);
-	}*/
+		if ( !understandsCatalogName ) {
+			element.put( "PKTABLE_CAT", null );
+		}
+	}
 	
 	public Iterator getSuggestedPrimaryKeyStrategyName(String catalog, String schema, String table) {
 			try {			
@@ -46,7 +66,7 @@
                         "AND idx.PRIMARY_KEY = TRUE " +
                         "AND COLUMN_DEFAULT like '%NEXT VALUE FOR%' ";				
 				if(catalog!=null) {
-					sql += "AND idx.TABLE_CATNAME like '" + catalog + "' ";
+					sql += "AND idx.TABLE_CATALOG like '" + catalog + "' ";
 				}
 				if(schema!=null) { 					
 					sql += "AND idx.TABLE_SCHEMA like '" + schema + "' ";




More information about the hibernate-commits mailing list