[hibernate-commits] Hibernate SVN: r11069 - trunk/Hibernate3/src/org/hibernate/dialect.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Jan 19 10:43:28 EST 2007


Author: max.andersen at jboss.com
Date: 2007-01-19 10:43:28 -0500 (Fri, 19 Jan 2007)
New Revision: 11069

Modified:
   trunk/Hibernate3/src/org/hibernate/dialect/H2Dialect.java
Log:
HHH-2300 Updated dialect for H2 database engine

Modified: trunk/Hibernate3/src/org/hibernate/dialect/H2Dialect.java
===================================================================
--- trunk/Hibernate3/src/org/hibernate/dialect/H2Dialect.java	2007-01-19 15:42:10 UTC (rev 11068)
+++ trunk/Hibernate3/src/org/hibernate/dialect/H2Dialect.java	2007-01-19 15:43:28 UTC (rev 11069)
@@ -10,6 +10,7 @@
 import org.hibernate.dialect.function.VarArgsSQLFunction;
 import org.hibernate.exception.TemplatedViolatedConstraintNameExtracter;
 import org.hibernate.exception.ViolatedConstraintNameExtracter;
+import org.hibernate.util.ReflectHelper;
 
 /**
  * A dialect compatible with the H2 database.
@@ -19,9 +20,22 @@
  */
 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)
+        }
         registerColumnType(Types.BOOLEAN, "boolean");
         registerColumnType(Types.BIGINT, "bigint");
         registerColumnType(Types.BINARY, "binary");
@@ -216,7 +230,7 @@
     }
 
     public String getQuerySequencesString() {
-        return "select name from information_schema.sequences";
+        return querySequenceString;
     }
 
     public boolean supportsSequences() {




More information about the hibernate-commits mailing list