diff --git a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java index 203dea1ad4..c4c2d4ac68 100644 --- a/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/MetaImpl.java @@ -1146,7 +1146,10 @@ final class MetaImpl extends AbstractMeta { groups.forEach((k, v) -> { v.sortAsc(5); - result.add(createUniqueKey(v, 4, 3, false)); + UniqueKey key = createUniqueKey(v, 4, 3, false); + + if (key != null) + result.add(key); }); } @@ -1404,6 +1407,12 @@ final class MetaImpl extends AbstractMeta { for (Field field : fields()) if (field.getName().equalsIgnoreCase(name)) f[i] = (TableField) field; + + // [#17288] Ignore the key if columns cannot be looked up. + if (f[i] == null) { + log.info("Cannot look up unique key column " + columnName + " in table: " + this + ". Consider reporting https://jooq.org/bug"); + return null; + } } String indexName = result.get(0).get(keyName, String.class);