From fba49acfc86cd082f997552504785065419b585d Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 25 Jan 2022 10:33:49 +0100 Subject: [PATCH] [jOOQ/jOOQ#12931] DAOImpl#deleteById(Collection) ignores Converter --- .../java/org/jooq/impl/AbstractDataType.java | 8 +++++--- jOOQ/src/main/java/org/jooq/impl/DAOImpl.java | 18 ++++++------------ 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java index 8a454ae980..8e48e198ec 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java @@ -52,7 +52,9 @@ import static org.jooq.impl.SQLDataType.NCHAR; import static org.jooq.impl.SQLDataType.NCLOB; import static org.jooq.impl.SQLDataType.NVARCHAR; import static org.jooq.impl.Tools.NO_SUPPORT_BINARY_TYPE_LENGTH; +import static org.jooq.impl.Tools.map; +import java.lang.reflect.Array; import java.math.BigDecimal; import java.math.BigInteger; import java.sql.Blob; @@ -586,7 +588,7 @@ implements } @Override - public /* final */ T convert(Object object) { + public /* non-final */ T convert(Object object) { // [#1441] Avoid unneeded type conversions to improve performance if (object == null) @@ -599,12 +601,12 @@ implements @Override public final T[] convert(Object... objects) { - return Convert.convertArray(objects, getConverter()); + return map(objects, o -> convert(o), l -> (T[]) Array.newInstance(getType(), l)); } @Override public final List convert(Collection objects) { - return Convert.convert(objects, getConverter()); + return map(objects, o -> convert(o)); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/DAOImpl.java b/jOOQ/src/main/java/org/jooq/impl/DAOImpl.java index 467c18cd08..7f5f715d66 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DAOImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DAOImpl.java @@ -412,31 +412,25 @@ public abstract class DAOImpl, P, T> implements DAO @SuppressWarnings("unchecked") private /* non-final */ Condition equal(Field[] pk, T id) { - if (pk.length == 1) { + if (pk.length == 1) return ((Field) pk[0]).equal(pk[0].getDataType().convert(id)); - } // [#2573] Composite key T types are of type Record[N] - else { + else return row(pk).equal((Record) id); - } } @SuppressWarnings("unchecked") private /* non-final */ Condition equal(Field[] pk, Collection ids) { - if (pk.length == 1) { - if (ids.size() == 1) { + if (pk.length == 1) + if (ids.size() == 1) return equal(pk, ids.iterator().next()); - } - else { + else return ((Field) pk[0]).in(pk[0].getDataType().convert(ids)); - } - } // [#2573] Composite key T types are of type Record[N] - else { + else return row(pk).in(ids.toArray(EMPTY_RECORD)); - } } private /* non-final */ Field[] pk() {