From 43cf60192e26d6b7abe2341f87b04856a98bd58f Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 20 Jan 2021 13:31:20 +0100 Subject: [PATCH] [jOOQ/jOOQ#11261] Interpreter cannot find unique key if foreign key references columns in different order --- jOOQ/src/main/java/org/jooq/impl/Interpreter.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/Interpreter.java b/jOOQ/src/main/java/org/jooq/impl/Interpreter.java index 941f664e01..266bb321c0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Interpreter.java +++ b/jOOQ/src/main/java/org/jooq/impl/Interpreter.java @@ -61,11 +61,13 @@ import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Set; import org.jooq.Catalog; import org.jooq.Check; @@ -1727,12 +1729,14 @@ final class Interpreter { } final MutableUniqueKey uniqueKey(List mrfs) { + Set set = new HashSet<>(mrfs); + if (primaryKey != null) - if (primaryKey.fields.equals(mrfs)) + if (set.equals(new HashSet<>(primaryKey.fields))) return primaryKey; for (MutableUniqueKey mu : uniqueKeys) - if (mu.fields.equals(mrfs)) + if (set.equals(new HashSet<>(mu.fields))) return mu; return null;