From 42d137a56a628665ad07e3e1ccbeface6b08bcdc Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 20 Mar 2018 10:32:10 +0100 Subject: [PATCH] [#7330] Workaround for regression in H2 generator where primary keys are no longer found --- .../src/main/java/org/jooq/util/h2/H2Database.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/util/h2/H2Database.java b/jOOQ-meta/src/main/java/org/jooq/util/h2/H2Database.java index 20cdcd890f..d8a8b3bac7 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/h2/H2Database.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/h2/H2Database.java @@ -185,7 +185,9 @@ public class H2Database extends AbstractDatabase { @Override protected void loadPrimaryKeys(DefaultRelations relations) throws SQLException { - for (Record record : fetchKeys("PRIMARY KEY")) { + + // Workaround for https://github.com/h2database/h2database/issues/1000 + for (Record record : fetchKeys("PRIMARY KEY", "PRIMARY_KEY")) { SchemaDefinition schema = getSchema(record.get(Constraints.TABLE_SCHEMA)); if (schema != null) { @@ -219,7 +221,7 @@ public class H2Database extends AbstractDatabase { } } - private Result> fetchKeys(String constraintType) { + private Result> fetchKeys(String... constraintTypes) { return create().select( Constraints.TABLE_SCHEMA, Constraints.TABLE_NAME, @@ -231,7 +233,7 @@ public class H2Database extends AbstractDatabase { .and(Constraints.TABLE_NAME.eq(Indexes.TABLE_NAME)) .and(Constraints.UNIQUE_INDEX_NAME.eq(Indexes.INDEX_NAME)) .where(Constraints.TABLE_SCHEMA.in(getInputSchemata())) - .and(Constraints.CONSTRAINT_TYPE.equal(constraintType)) + .and(Constraints.CONSTRAINT_TYPE.in(constraintTypes)) .orderBy( Constraints.TABLE_SCHEMA, Constraints.CONSTRAINT_NAME, @@ -254,7 +256,9 @@ public class H2Database extends AbstractDatabase { .and(CrossReferences.PKTABLE_NAME.equal(Constraints.TABLE_NAME)) .and(CrossReferences.PKTABLE_SCHEMA.equal(Constraints.TABLE_SCHEMA)) .where(CrossReferences.FKTABLE_SCHEMA.in(getInputSchemata())) - .and(Constraints.CONSTRAINT_TYPE.in("PRIMARY KEY", "UNIQUE")) + + // Workaround for https://github.com/h2database/h2database/issues/1000 + .and(Constraints.CONSTRAINT_TYPE.in("PRIMARY KEY", "PRIMARY_KEY", "UNIQUE")) .orderBy( CrossReferences.FKTABLE_SCHEMA.asc(), CrossReferences.FK_NAME.asc(),