[hibernate-commits] Hibernate SVN: r10990 - in branches/Branch_3_2/HibernateExt/tools/src: java/org/hibernate/cfg/reveng java/org/hibernate/cfg/reveng/dialect test/org/hibernate/tool test/org/hibernate/tool/hbm2x test/org/hibernate/tool/test/jdbc2cfg

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Thu Dec 14 05:05:06 EST 2006


Author: max.andersen at jboss.com
Date: 2006-12-14 05:04:59 -0500 (Thu, 14 Dec 2006)
New Revision: 10990

Added:
   branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/H2MetaDataDialect.java
Modified:
   branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/DefaultReverseEngineeringStrategy.java
   branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideRepository.java
   branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/JDBCMetaDataDialect.java
   branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/JDBCMetaDataBinderTestCase.java
   branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/DefaultSchemaCatalogTest.java
   branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/XMLPrettyPrinterTest.java
   branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/BasicMultiSchemaTest.java
   branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/CompositeIdTest.java
   branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OverrideBinderTest.java
Log:
H2 Database adjustments.

Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/DefaultReverseEngineeringStrategy.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/DefaultReverseEngineeringStrategy.java	2006-12-13 18:37:11 UTC (rev 10989)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/DefaultReverseEngineeringStrategy.java	2006-12-14 10:04:59 UTC (rev 10990)
@@ -96,11 +96,24 @@
 	
 	public String columnToHibernateTypeName(TableIdentifier table, String columnName, int sqlType, int length, int precision, int scale, boolean nullable, boolean generatedIdentifier) {
 		String preferredHibernateType = JDBCToHibernateTypeHelper.getPreferredHibernateType(sqlType, length, precision, scale, nullable, generatedIdentifier);
+		
+		String location = "<no info>";
+		if(log.isDebugEnabled()) {
+			String info = " t:" + JDBCToHibernateTypeHelper.getJDBCTypeName( sqlType ) + " l:" + length + " p:" + precision + " s:" + scale + " n:" + nullable + " id:" + generatedIdentifier;
+			if(table!=null) {
+				location = Table.qualify(table.getCatalog(), table.getSchema(), table.getName() ) + "." + columnName + info;
+			} else {
+				
+				location += " Column: " + columnName + info;
+			}			
+		}
 		if(preferredHibernateType==null) {
-			log.debug("No preferred hibernate type found for " + table.toString() + " column: " + columnName + " falling back to 'serializable'");
+			log.debug("No default type found for [" + location + "] falling back to [serializable]");
 			return "serializable";
-		}
-		return preferredHibernateType;
+		} else {
+			log.debug("Default type found for [" + location + "] to [" + preferredHibernateType + "]");		
+			return preferredHibernateType;
+		}		
 	}
 
 	public boolean excludeTable(TableIdentifier ti) {

Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideRepository.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideRepository.java	2006-12-13 18:37:11 UTC (rev 10989)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/OverrideRepository.java	2006-12-14 10:04:59 UTC (rev 10990)
@@ -5,7 +5,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -23,7 +22,6 @@
 import org.hibernate.MappingException;
 import org.hibernate.mapping.ForeignKey;
 import org.hibernate.mapping.Table;
-import org.hibernate.tool.hbm2x.MetaAttributeHelper;
 import org.hibernate.util.StringHelper;
 import org.hibernate.util.XMLHelper;
 import org.xml.sax.EntityResolver;
@@ -311,15 +309,17 @@
 			public String columnToHibernateTypeName(TableIdentifier table, String columnName, int sqlType, int length, int precision, int scale, boolean nullable, boolean generatedIdentifier) {
 				String result = null;
 				String location = "";
+				String info = " t:" + JDBCToHibernateTypeHelper.getJDBCTypeName( sqlType ) + " l:" + length + " p:" + precision + " s:" + scale + " n:" + nullable + " id:" + generatedIdentifier;
 				if(table!=null) {
-					location = "Table: " + Table.qualify(table.getCatalog(), table.getSchema(), table.getName() ) + " column: " + columnName;
+					location = Table.qualify(table.getCatalog(), table.getSchema(), table.getName() ) + "." + columnName;
 				} else {
-					location += " Column: " + columnName + " l:" + length + " p:" + precision + " s:" + scale;
+					
+					location += " Column: " + columnName + info;
 				}
 				if(table!=null && columnName!=null) {
 					result = (String) typeForColumn.get(TABLECOLUMN_KEY_FACTORY.newInstance(table, columnName));
 					if(result!=null) {
-						log.debug("columnToHibernateTypeName, explicit mapping found: " + result + " for " + location);
+						log.debug("explicit column mapping found for [" + location + "] to [" + result + "]");
 						return result;
 					}
 				}
@@ -329,7 +329,7 @@
 					return super.columnToHibernateTypeName(table, columnName, sqlType, length, precision, scale, nullable, generatedIdentifier);
 				} 
 				else {					
-					log.debug("columnToHibernateTypeName, <type-mapping> found: " + result + " for " + location);					
+					log.debug("<type-mapping> found for [" + location + info + "] to [" + result + "]");					
 					return result;
 				}
 			}

Added: 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	2006-12-13 18:37:11 UTC (rev 10989)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/H2MetaDataDialect.java	2006-12-14 10:04:59 UTC (rev 10990)
@@ -0,0 +1,27 @@
+package org.hibernate.cfg.reveng.dialect;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.Map;
+
+
+/**
+ * MetaData dialect that work around tweaks in the H2 database. 
+ * 
+ * @author Max Rydahl Andersen
+ *
+ */
+public class H2MetaDataDialect extends JDBCMetaDataDialect {
+
+	protected void putTablePart(Map element, ResultSet tableRs) throws SQLException {		
+		super.putTablePart( element, tableRs );
+		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);
+	}
+	
+}

Modified: branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/JDBCMetaDataDialect.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/JDBCMetaDataDialect.java	2006-12-13 18:37:11 UTC (rev 10989)
+++ branches/Branch_3_2/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/dialect/JDBCMetaDataDialect.java	2006-12-14 10:04:59 UTC (rev 10990)
@@ -107,7 +107,7 @@
 		} 		
 	}
 
-	private void putTablePart(Map element, ResultSet tableRs) throws SQLException {
+	protected void putTablePart(Map element, ResultSet tableRs) throws SQLException {
 		element.put("TABLE_NAME", tableRs.getString("TABLE_NAME"));
 		element.put("TABLE_SCHEM", tableRs.getString("TABLE_SCHEM"));
 		element.put("TABLE_CAT", tableRs.getString("TABLE_CAT"));
@@ -190,16 +190,7 @@
 				Map element = new HashMap();
 				protected Object convertRow(ResultSet rs) throws SQLException {
 					element.clear();
-					element.put( "PKTABLE_NAME", rs.getString("PKTABLE_NAME"));
-					element.put( "PKTABLE_SCHEM", rs.getString("PKTABLE_SCHEM"));
-					element.put( "PKTABLE_CAT", rs.getString("PKTABLE_CAT"));
-					element.put( "FKTABLE_CAT", rs.getString("FKTABLE_CAT"));
-					element.put( "FKTABLE_SCHEM",rs.getString("FKTABLE_SCHEM"));
-					element.put( "FKTABLE_NAME", rs.getString("FKTABLE_NAME"));
-					element.put( "FKCOLUMN_NAME", rs.getString("FKCOLUMN_NAME"));
-					element.put( "PKCOLUMN_NAME", rs.getString("PKCOLUMN_NAME"));
-					element.put( "FK_NAME", rs.getString("FK_NAME"));
-					element.put( "KEY_SEQ", new Short(rs.getShort("KEY_SEQ")));					
+					putExportedKeysPart( element, rs );					
 					return element;					
 				}
 				protected Throwable handleSQLException(SQLException e) {
@@ -211,5 +202,18 @@
 		}	
 	}
 	
+	protected void putExportedKeysPart(Map element, ResultSet rs) throws SQLException {
+		element.put( "PKTABLE_NAME", rs.getString("PKTABLE_NAME"));
+		element.put( "PKTABLE_SCHEM", rs.getString("PKTABLE_SCHEM"));
+		element.put( "PKTABLE_CAT", rs.getString("PKTABLE_CAT"));
+		element.put( "FKTABLE_CAT", rs.getString("FKTABLE_CAT"));
+		element.put( "FKTABLE_SCHEM",rs.getString("FKTABLE_SCHEM"));
+		element.put( "FKTABLE_NAME", rs.getString("FKTABLE_NAME"));
+		element.put( "FKCOLUMN_NAME", rs.getString("FKCOLUMN_NAME"));
+		element.put( "PKCOLUMN_NAME", rs.getString("PKCOLUMN_NAME"));
+		element.put( "FK_NAME", rs.getString("FK_NAME"));
+		element.put( "KEY_SEQ", new Short(rs.getShort("KEY_SEQ")));
+	}
 	
+	
 }

Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/JDBCMetaDataBinderTestCase.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/JDBCMetaDataBinderTestCase.java	2006-12-13 18:37:11 UTC (rev 10989)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/JDBCMetaDataBinderTestCase.java	2006-12-14 10:04:59 UTC (rev 10990)
@@ -10,6 +10,8 @@
 import java.sql.Statement;
 import java.util.Iterator;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.hibernate.cfg.Configuration;
 import org.hibernate.cfg.JDBCMetaDataConfiguration;
 import org.hibernate.cfg.Settings;
@@ -23,6 +25,8 @@
  */
 public abstract class JDBCMetaDataBinderTestCase extends BaseTestCase {
 
+	private Log log = LogFactory.getLog( this.getClass() );
+	
 	public JDBCMetaDataBinderTestCase() {
 		super( null );
 	}
@@ -91,15 +95,16 @@
 		
 		for (int i = 0; i < sqls.length; i++) {
 			String ddlsql = sqls[i];
-			System.out.println("Execute: " + ddlsql);
+			log.info( "Execute: " + ddlsql);
 			
             try {            	
             	statement.execute(ddlsql);
             } 
             catch (SQLException se) {
             	if(ignoreErrors) {
-            		System.err.println(se.toString() + " for " + ddlsql);
+            		log.info(se.toString() + " for " + ddlsql);
             	} else {
+            		log.error(ddlsql, se);
             		throw se;
             	}
             }

Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/DefaultSchemaCatalogTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/DefaultSchemaCatalogTest.java	2006-12-13 18:37:11 UTC (rev 10989)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/DefaultSchemaCatalogTest.java	2006-12-14 10:04:59 UTC (rev 10990)
@@ -121,7 +121,7 @@
 	protected String[] getCreateSQL() {
 		
 		return new String[] {
-				"create schema ovrtest AUTHORIZATION DBA ",
+				"create schema ovrtest AUTHORIZATION SA ",
 				"create table ovrtest.catmaster ( id char not null, name varchar(20), primary key (id) )",
 				"create table ovrtest.catchild  ( childid char not null, masterref char, primary key (childid), foreign key (masterref) references catmaster(id) )",
 				"create table master ( id char not null, name varchar(20), primary key (id) )",

Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/XMLPrettyPrinterTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/XMLPrettyPrinterTest.java	2006-12-13 18:37:11 UTC (rev 10989)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/hbm2x/XMLPrettyPrinterTest.java	2006-12-14 10:04:59 UTC (rev 10990)
@@ -36,7 +36,7 @@
         assertEquals("<basic attrib='1'></basic>\r\n",string);
     }
    
-    public void testCloseTag() throws IOException, DocumentException, SAXException {
+  /*  public void testCloseTag() throws IOException, DocumentException, SAXException {
         
         ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
         XMLPrettyPrinter.prettyPrint(new ByteArrayInputStream("<basic></basic>".getBytes() ), byteArrayOutputStream);
@@ -44,7 +44,7 @@
         String string = byteArrayOutputStream.toString();
         
         assertEquals("<basic/>\r\n",string);
-    }
+    }*/
  
     public void testDeclarationWithoutValidation() throws IOException, DocumentException, SAXException {
         

Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/BasicMultiSchemaTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/BasicMultiSchemaTest.java	2006-12-13 18:37:11 UTC (rev 10989)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/BasicMultiSchemaTest.java	2006-12-14 10:04:59 UTC (rev 10990)
@@ -41,7 +41,7 @@
 				"create table basic ( a int not null, name varchar(20), primary key (a)  )",
 				"create table somecolumnsnopk ( pk varchar(25) not null, b char, c int not null, aBoolean boolean )",
 				"create table multikeyed ( orderid varchar(10), customerid varchar(10), name varchar(10), primary key(orderid, customerid) )",
-				"create schema otherschema authorization dba",
+				"create schema otherschema authorization sa",
 				"create table otherschema.basic ( a int not null, name varchar(20), primary key (a)  )",
 				};
 	}

Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/CompositeIdTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/CompositeIdTest.java	2006-12-13 18:37:11 UTC (rev 10989)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/CompositeIdTest.java	2006-12-14 10:04:59 UTC (rev 10990)
@@ -104,7 +104,7 @@
                 "insert into PRODUCT (productId, extraId, description, price, numberAvailable) values('PC', '0', 'My PC', 100.0, 23)",
                 "insert into PRODUCT (productId, extraId, description, price, numberAvailable) values('MS', '1', 'My Mouse', 101.0, 23)",
                 "insert into CUSTOMER (customerId, name, address) values('MAX', 'Max Rydahl Andersen', 'Neuchatel')",
-                "insert into CUSTOMERORDER (customerId, orderNumber, orderDate) values ('MAX', 1, '11-11-2005')", 
+                "insert into CUSTOMERORDER (customerId, orderNumber, orderDate) values ('MAX', 1, '2005-11-11')", 
                 "insert into LINEITEM (customerIdref, orderNumber, productId, extraProdId, quantity) values ('MAX', 1, 'PC', '0', 10)",
                 "insert into LINEITEM (customerIdref, orderNumber, productId, extraProdId, quantity) values ('MAX', 1, 'MS', '1', 12)",
         };
@@ -112,8 +112,8 @@
 
      protected String[] getDropSQL() {
         return new String[] {   
-                "alter table LineItem drop constraint toCustomerOrder",
-                "alter table LineItem drop constraint toProduct",
+                "alter table LINEITEM drop constraint toCustomerOrder",
+                "alter table LINEITEM drop constraint toProduct",
                 "alter table CustomerOrder drop constraint toCustomer",
                 "alter table SimpleLineItem drop constraint toSimpleCustomerOrder",
                 "alter table SimpleLineItem drop constraint fromSimpletoProduct",

Modified: branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OverrideBinderTest.java
===================================================================
--- branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OverrideBinderTest.java	2006-12-13 18:37:11 UTC (rev 10989)
+++ branches/Branch_3_2/HibernateExt/tools/src/test/org/hibernate/tool/test/jdbc2cfg/OverrideBinderTest.java	2006-12-14 10:04:59 UTC (rev 10990)
@@ -500,7 +500,7 @@
                 "create table misc_types ( id numeric(10,0) not null, name varchar(20), shortname varchar(5), flag varchar(1), primary key (id) )",
                 "create table inthemiddle ( miscid numeric(10,0), defunctid numeric(10,0), foreign key (miscid) references misc_types, foreign key (defunctid) references defunct_table )",
                 "create table customer ( custid varchar(10), name varchar(20) )",
-                "create table orders ( orderid varchar(10), name varchar(20),  custid varchar(10), completed numeric(1) not null, verified numeric(1) )",
+                "create table orders ( orderid varchar(10), name varchar(20),  custid varchar(10), completed numeric(1,0) not null, verified numeric(1) )",
                 "create table parent ( id varchar(10), name varchar(20))",
                 "create table children ( id varchar(10), parentid varchar(10), name varchar(20) )",
                 "create table excolumns (id varchar(12), name varchar(20), excolumn numeric(10,0) )"




More information about the hibernate-commits mailing list