[hibernate-commits] Hibernate SVN: r16644 - core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Mon Jun 1 11:17:57 EDT 2009


Author: steve.ebersole at jboss.com
Date: 2009-06-01 11:17:56 -0400 (Mon, 01 Jun 2009)
New Revision: 16644

Modified:
   core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/H2Dialect.java
Log:
HHH-3401 - H2 Database Dialect Fixes


Modified: core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/H2Dialect.java
===================================================================
--- core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/H2Dialect.java	2009-06-01 15:14:58 UTC (rev 16643)
+++ core/branches/Branch_3_3/core/src/main/java/org/hibernate/dialect/H2Dialect.java	2009-06-01 15:17:56 UTC (rev 16644)
@@ -20,7 +20,6 @@
  * Free Software Foundation, Inc.
  * 51 Franklin Street, Fifth Floor
  * Boston, MA  02110-1301  USA
- *
  */
 package org.hibernate.dialect;
 
@@ -40,30 +39,32 @@
  * A dialect compatible with the H2 database.
  * 
  * @author Thomas Mueller
- *
  */
 public class H2Dialect extends Dialect {
 
-    private String querySequenceString;
-    public H2Dialect() {
-        super();
-               
-        querySequenceString = "select sequence_name from information_schema.sequences";
-        try {
-        	// HHH-2300
-            Class constants = ReflectHelper.classForName( "org.h2.engine.Constants" );
-            Integer build = (Integer)constants.getDeclaredField("BUILD_ID" ).get(null);
-            int buildid = build.intValue();
-            if(buildid < 32) {
-                querySequenceString = "select name from information_schema.sequences";
-            }
-        } catch(Throwable e) {
-            // ignore (probably H2 not in the classpath)
-        }
+	private String querySequenceString;
+
+	public H2Dialect() {
+		super();
+
+		querySequenceString = "select sequence_name from information_schema.sequences";
+		try {
+			// HHH-2300
+			Class constants = ReflectHelper.classForName( "org.h2.engine.Constants" );
+			Integer build = ( Integer ) constants.getDeclaredField( "BUILD_ID" ).get( null );
+			int buildid = build.intValue();
+			if ( buildid < 32 ) {
+				querySequenceString = "select name from information_schema.sequences";
+			}
+		}
+		catch ( Throwable e ) {
+			// ignore (probably H2 not in the classpath)
+		}
+
         registerColumnType(Types.BOOLEAN, "boolean");
         registerColumnType(Types.BIGINT, "bigint");
         registerColumnType(Types.BINARY, "binary");
-        registerColumnType(Types.BIT, "bit");
+        registerColumnType(Types.BIT, "boolean");
         registerColumnType(Types.CHAR, "char($l)");
         registerColumnType(Types.DATE, "date");
         registerColumnType(Types.DECIMAL, "decimal($p,$s)");
@@ -165,7 +166,7 @@
 //        registerFunction("minute", new StandardSQLFunction("minute", Hibernate.INTEGER));
 //        registerFunction("month", new StandardSQLFunction("month", Hibernate.INTEGER));
         registerFunction("monthname", new StandardSQLFunction("monthname", Hibernate.STRING));
-        registerFunction("quater", new StandardSQLFunction("quater", Hibernate.INTEGER));
+        registerFunction("quarter", new StandardSQLFunction("quarter", Hibernate.INTEGER));
 //        registerFunction("second", new StandardSQLFunction("second", Hibernate.INTEGER));
         registerFunction("week", new StandardSQLFunction("week", Hibernate.INTEGER));
 //        registerFunction("year", new StandardSQLFunction("year", Hibernate.INTEGER));
@@ -215,10 +216,10 @@
     }
 
     public String getLimitString(String sql, boolean hasOffset) {
-        return new StringBuffer(sql.length() + 20).
-            append(sql).
-            append(hasOffset ? " limit ? offset ?" : " limit ?").
-            toString();
+        return new StringBuffer(sql.length() + 20)
+				.append(sql)
+				.append(hasOffset ? " limit ? offset ?" : " limit ?")
+				.toString();
     }
     
     public boolean bindLimitParametersInReverseOrder() {
@@ -266,29 +267,27 @@
     }
 
     private static ViolatedConstraintNameExtracter EXTRACTER = new TemplatedViolatedConstraintNameExtracter() {
+		/**
+		 * Extract the name of the violated constraint from the given SQLException.
+		 *
+		 * @param sqle The exception that was the result of the constraint violation.
+		 * @return The extracted constraint name.
+		 */
+		public String extractConstraintName(SQLException sqle) {
+			String constraintName = null;
+			// 23000: Check constraint violation: {0}
+			// 23001: Unique index or primary key violation: {0}
+			if ( sqle.getSQLState().startsWith( "23" ) ) {
+				final String message = sqle.getMessage();
+				final int idx = message.indexOf( "violation: " );
+				if ( idx > 0 ) {
+					constraintName = message.substring( idx + "violation: ".length() );
+				}
+			}
+			return constraintName;
+		}
+	};
 
-        /**
-         * Extract the name of the violated constraint from the given SQLException.
-         *
-         * @param sqle The exception that was the result of the constraint violation.
-         * @return The extracted constraint name.
-         */
-        public String extractConstraintName(SQLException sqle) {
-            String constraintName = null;
-            // 23000: Check constraint violation: {0}
-            // 23001: Unique index or primary key violation: {0}
-            if(sqle.getSQLState().startsWith("23")) {
-                String message = sqle.getMessage();
-                int idx = message.indexOf("violation: ");
-                if(idx > 0) {
-                    constraintName = message.substring(idx + "violation: ".length());
-                }
-            }
-            return constraintName;
-        }
-
-    };
-
     public boolean supportsTemporaryTables() {
         return true;
     }
@@ -319,4 +318,4 @@
 	public boolean supportsLobValueChangePropogation() {
 		return false;
 	}
-}
\ No newline at end of file
+}




More information about the hibernate-commits mailing list