[jOOQ/jOOQ#12931] DAOImpl#deleteById(Collection<T>) ignores Converter
This commit is contained in:
parent
a0cdd63e54
commit
fba49acfc8
@ -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<T> convert(Collection<?> objects) {
|
||||
return Convert.convert(objects, getConverter());
|
||||
return map(objects, o -> convert(o));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -412,31 +412,25 @@ public abstract class DAOImpl<R extends UpdatableRecord<R>, 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<Object>) 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<T> 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<Object>) 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() {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user