From 80ed6c76d52a774a60324124705d51cf36783933 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 19 Aug 2020 15:52:48 +0200 Subject: [PATCH] [jOOQ/jOOQ#8353] Generated EmbeddableRecords must reference forced type When an embeddable's base table has converted columns (via forced type), then the embeddable record must reflect the base table column's converted data types. --- .../jooq/meta/AbstractTypedElementDefinition.java | 6 ++---- .../meta/DefaultEmbeddableColumnDefinition.java | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractTypedElementDefinition.java b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractTypedElementDefinition.java index 5aa465a583..6ff990a2d7 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/AbstractTypedElementDefinition.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/AbstractTypedElementDefinition.java @@ -125,18 +125,16 @@ public abstract class AbstractTypedElementDefinition @Override public DataTypeDefinition getType() { - if (type == null) { + if (type == null) type = mapDefinedType(container, this, definedType, null); - } return type; } @Override public DataTypeDefinition getType(JavaTypeResolver resolver) { - if (resolvedType == null) { + if (resolvedType == null) resolvedType = mapDefinedType(container, this, definedType, resolver); - } return resolvedType; } diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/DefaultEmbeddableColumnDefinition.java b/jOOQ-meta/src/main/java/org/jooq/meta/DefaultEmbeddableColumnDefinition.java index 56833f8895..447fbd9534 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/DefaultEmbeddableColumnDefinition.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/DefaultEmbeddableColumnDefinition.java @@ -63,4 +63,19 @@ public class DefaultEmbeddableColumnDefinition public final ColumnDefinition getReferencingColumn() { return referencingColumn; } + + @Override + public DataTypeDefinition getType() { + return getReferencingColumn().getType(); + } + + @Override + public DataTypeDefinition getType(JavaTypeResolver resolver) { + return getReferencingColumn().getType(resolver); + } + + @Override + public DataTypeDefinition getDefinedType() { + return getReferencingColumn().getDefinedType(); + } }