diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index a620d542d7..06315deacc 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -184,9 +184,17 @@ abstract class AbstractField extends AbstractQueryPart implements Field { } } + @SuppressWarnings("unchecked") @Override public final Field cast(Class type) { - return cast(DefaultDataType.getDataType(null, type)); + + // [#2597] Prevent unnecessary casts + if (getType() == type) { + return (Field) this; + } + else { + return cast(DefaultDataType.getDataType(null, type)); + } } // ------------------------------------------------------------------------