From 12425016ffb1894b331df50fef40af3773c6a629 Mon Sep 17 00:00:00 2001 From: lukaseder Date: Tue, 29 May 2018 10:03:24 +0200 Subject: [PATCH] [#7515] SEEK operations do not auto-convert bind variables to appropriate type --- .../main/java/org/jooq/impl/SelectImpl.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java b/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java index 754d4b1afb..667beed377 100644 --- a/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/SelectImpl.java @@ -1701,9 +1701,24 @@ final class SelectImpl> seekValues(Object[] values) { + if (getQuery() instanceof SelectQueryImpl) { + SelectQueryImpl query = (SelectQueryImpl) getQuery(); + List> fields = query.getOrderBy().fields(); + DataType[] types = new DataType[fields.size()]; + + for (int i = 0; i < types.length; i++) + types[i] = fields.get(i).getDataType(); + + return Tools.fields(values, types); + } + else + return Tools.fields(values); + } + @Override public final SelectSeekLimitStep seek(Object... values) { - getQuery().addSeekAfter(Tools.fields(values)); + getQuery().addSeekAfter(seekValues(values)); return this; } @@ -1715,7 +1730,7 @@ final class SelectImpl seekAfter(Object... values) { - getQuery().addSeekAfter(Tools.fields(values)); + getQuery().addSeekAfter(seekValues(values)); return this; }