Author: max.andersen(a)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) )"