diff --git a/ebean-api/pom.xml b/ebean-api/pom.xml
index a27749023..b681c1a70 100644
--- a/ebean-api/pom.xml
+++ b/ebean-api/pom.xml
@@ -85,7 +85,7 @@
com.h2database
h2
- 1.4.199
+ 2.0.202
true
diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2Platform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2Platform.java
index cdc923824..4f81f4eb2 100644
--- a/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2Platform.java
+++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2Platform.java
@@ -39,6 +39,7 @@ public class H2Platform extends DatabasePlatform {
this.dbIdentity.setSupportsIdentity(true);
dbTypeMap.put(DbType.UUID, new DbPlatformType("uuid", false));
+ dbTypeMap.put(DbType.INTEGER, new DbPlatformType("integer", false));
}
/**
diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2SequenceIdGenerator.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2SequenceIdGenerator.java
index b4e875511..5ef08c059 100644
--- a/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2SequenceIdGenerator.java
+++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/h2/H2SequenceIdGenerator.java
@@ -18,13 +18,12 @@ public class H2SequenceIdGenerator extends SequenceBatchIdGenerator {
*/
public H2SequenceIdGenerator(BackgroundExecutor be, DataSource ds, String seqName, int batchSize) {
super(be, ds, seqName, batchSize);
- this.baseSql = "select " + seqName + ".nextval";
+ this.baseSql = "select nextval('" + seqName + "')";
this.unionBaseSql = " union " + baseSql;
}
@Override
public String getSql(int batchSize) {
-
StringBuilder sb = new StringBuilder();
sb.append(baseSql);
for (int i = 1; i < batchSize; i++) {
diff --git a/ebean-core/pom.xml b/ebean-core/pom.xml
index 08752f040..af55c2c6a 100644
--- a/ebean-core/pom.xml
+++ b/ebean-core/pom.xml
@@ -78,7 +78,7 @@
com.h2database
h2
- 1.4.199
+ 2.0.202
provided
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployInherit.java b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployInherit.java
index 2dd13f993..4eb2fa640 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployInherit.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/deploy/parse/DeployInherit.java
@@ -6,6 +6,7 @@ import io.ebeaninternal.server.deploy.InheritInfo;
import io.ebeaninternal.server.deploy.meta.DeployBeanDescriptor;
import javax.persistence.DiscriminatorColumn;
+import javax.persistence.DiscriminatorType;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Inheritance;
import java.util.LinkedHashMap;
@@ -105,8 +106,11 @@ public final class DeployInherit {
if (da != null) {
// lowercase the discriminator column for RawSql and JSON
info.setColumnName(da.name().toLowerCase());
- info.setColumnType(da.discriminatorType());
- info.setColumnLength(da.length());
+ DiscriminatorType discriminatorType = da.discriminatorType();
+ info.setColumnType(discriminatorType);
+ if (discriminatorType == DiscriminatorType.STRING) {
+ info.setColumnLength(da.length());
+ }
info.setColumnDefn(da.columnDefinition());
}
if (!info.isAbstract()) {
diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumStandard.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumStandard.java
index 8545bc9a7..969bfd016 100644
--- a/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumStandard.java
+++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/ScalarTypeEnumStandard.java
@@ -189,7 +189,12 @@ final class ScalarTypeEnumStandard {
if (dbValue == null || dbValue instanceof Enum>) {
return dbValue;
}
- int ordinal = (Integer) dbValue;
+ int ordinal;
+ if (dbValue instanceof Integer) {
+ ordinal = (Integer) dbValue;
+ } else {
+ ordinal = Integer.parseInt(dbValue.toString());
+ }
if (ordinal < 0 || ordinal >= enumArray.length) {
String m = "Unexpected ordinal [" + ordinal + "] out of range [" + enumArray.length + "]";
throw new IllegalStateException(m);
diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2Ddl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2Ddl.java
index 13298faeb..542bc695a 100644
--- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2Ddl.java
+++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/H2Ddl.java
@@ -22,6 +22,12 @@ public class H2Ddl extends PlatformDdl {
@Override
protected String convertArrayType(String logicalArrayType) {
- return "array";
+ int pos = logicalArrayType.indexOf('[');
+ if (pos == -1) {
+ return logicalArrayType;
+ } else {
+ // trim of the fallback varchar length
+ return logicalArrayType.substring(0, pos) + " array";
+ }
}
}
diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java
index 8de6ac22b..87c48bb85 100644
--- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java
+++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/BaseDdlHandlerTest.java
@@ -107,7 +107,7 @@ public class BaseDdlHandlerTest extends BaseTestCase {
write = new DdlWrite();
h2Handler().generate(write, Helper.getAlterTableAddDbArrayColumnWithLength());
- assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety array;\n\n");
+ assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_ninety varchar array;\n\n");
write = new DdlWrite();
sqlserverHandler().generate(write, Helper.getAlterTableAddDbArrayColumnWithLength());
@@ -127,7 +127,7 @@ public class BaseDdlHandlerTest extends BaseTestCase {
write = new DdlWrite();
h2Handler().generate(write, Helper.getAlterTableAddDbArrayColumnIntegerWithLength());
- assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer array;\n\n");
+ assertThat(write.apply().getBuffer()).isEqualTo("alter table foo add column dbarray_integer integer array;\n\n");
write = new DdlWrite();
sqlserverHandler().generate(write, Helper.getAlterTableAddDbArrayColumnIntegerWithLength());
diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java
index 5da1a25a8..3141eef74 100644
--- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java
+++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl_AlterColumnTest.java
@@ -57,10 +57,10 @@ public class PlatformDdl_AlterColumnTest {
@Test
public void convertArrayType_h2() {
- assertThat(h2Ddl.convertArrayType("varchar[](90)")).isEqualTo("array");
- assertThat(h2Ddl.convertArrayType("integer[](60)")).isEqualTo("array");
- assertThat(h2Ddl.convertArrayType("varchar[]")).isEqualTo("array");
- assertThat(h2Ddl.convertArrayType("integer[]")).isEqualTo("array");
+ assertThat(h2Ddl.convertArrayType("varchar[](90)")).isEqualTo("varchar array");
+ assertThat(h2Ddl.convertArrayType("integer[](60)")).isEqualTo("integer array");
+ assertThat(h2Ddl.convertArrayType("varchar[]")).isEqualTo("varchar array");
+ assertThat(h2Ddl.convertArrayType("integer[]")).isEqualTo("integer array");
}
@Test
diff --git a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java
index 45dbd60b6..25a4621d5 100644
--- a/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java
+++ b/ebean-ddl-generator/src/test/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformTypeConverterTest.java
@@ -61,7 +61,7 @@ public class PlatformTypeConverterTest {
assertThat(converter.convert("clob")).isEqualTo("clob");
assertThat(converter.convert("blob")).isEqualTo("blob");
assertThat(converter.convert("tinyint")).isEqualTo("tinyint");
- assertThat(converter.convert("integer(8)")).isEqualTo("integer(8)");
+ assertThat(converter.convert("integer(8)")).isEqualTo("integer");
assertThat(converter.convert("funky")).isEqualTo("funky"); // unknown
}
diff --git a/ebean-test/pom.xml b/ebean-test/pom.xml
index c91ff68b9..f0fb26900 100644
--- a/ebean-test/pom.xml
+++ b/ebean-test/pom.xml
@@ -16,7 +16,7 @@
org.slf4j
slf4j-api
- 1.7.30
+ 1.7.32
provided
@@ -187,8 +187,8 @@
com.oracle.database.jdbc
-
ojdbc8
19.12.0.0
diff --git a/ebean-test/src/test/java/org/tests/inheritance/abstrakt/AbstractBaseBlock.java b/ebean-test/src/test/java/org/tests/inheritance/abstrakt/AbstractBaseBlock.java
index c4c3d0202..ecd0c2e39 100644
--- a/ebean-test/src/test/java/org/tests/inheritance/abstrakt/AbstractBaseBlock.java
+++ b/ebean-test/src/test/java/org/tests/inheritance/abstrakt/AbstractBaseBlock.java
@@ -3,7 +3,7 @@ package org.tests.inheritance.abstrakt;
import javax.persistence.*;
@Entity
-@Table(name = "block")
+@Table(name = "blockt")
@Inheritance
@DiscriminatorColumn(name = "case_type", discriminatorType = DiscriminatorType.INTEGER)
public abstract class AbstractBaseBlock {
diff --git a/ebean-test/src/test/resources/ebean.properties b/ebean-test/src/test/resources/ebean.properties
index 402facaab..d7e1debae 100644
--- a/ebean-test/src/test/resources/ebean.properties
+++ b/ebean-test/src/test/resources/ebean.properties
@@ -72,7 +72,7 @@ datasource.db.databaseDriver=org.h2.Driver
datasource.h2.username=sa
datasource.h2.password=
-datasource.h2.url=jdbc:h2:mem:testsMem;DB_CLOSE_ON_EXIT=FALSE
+datasource.h2.url=jdbc:h2:mem:testsMem;DB_CLOSE_ON_EXIT=FALSE;NON_KEYWORDS=KEY,VALUE
datasource.h2.poolListener=org.tests.basic.MyTestDataSourcePoolListener
#datasource.h2.minConnections=1
#datasource.h2.maxConnections=25
diff --git a/pom.xml b/pom.xml
index 1b48a5474..fc3905d89 100644
--- a/pom.xml
+++ b/pom.xml
@@ -61,14 +61,14 @@
ch.qos.logback
logback-classic
- 1.2.3
+ 1.2.8
test
com.h2database
h2
- 1.4.199
+ 2.0.202
test