From ffaf00c0642c007cca69be946bb3a76df3b52e19 Mon Sep 17 00:00:00 2001 From: rob bygrave Date: Wed, 27 May 2020 21:39:16 +1200 Subject: [PATCH] Improve error message throw on DTO unmapped DB column --- src/main/java/io/ebeaninternal/server/dto/DtoMeta.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/ebeaninternal/server/dto/DtoMeta.java b/src/main/java/io/ebeaninternal/server/dto/DtoMeta.java index c29e739c2..a6c99cb43 100644 --- a/src/main/java/io/ebeaninternal/server/dto/DtoMeta.java +++ b/src/main/java/io/ebeaninternal/server/dto/DtoMeta.java @@ -88,7 +88,7 @@ class DtoMeta { if (request.isRelaxedMode()) { property = DtoReadSetColumnSkip.INSTANCE; } else { - throw new IllegalStateException("Unable to map DB column " + cols[i] + " to a property with a setter method on " + dtoType); + throw new IllegalStateException(unableToMapColumnMessage(cols[i])); } } setterProps[pos++] = property; @@ -97,6 +97,10 @@ class DtoMeta { return new DtoQueryPlanConPlus(request, maxArgConstructor, setterProps); } + private String unableToMapColumnMessage(DtoColumn col) { + return "Unable to map DB column " + col + " to a property with a setter method on " + dtoType+". Consider query.setRelaxedMode() to skip mapping this column."; + } + private DtoQueryPlan matchSetters(DtoMappingRequest request) { DtoColumn[] cols = request.getColumnMeta(); @@ -110,7 +114,7 @@ class DtoMeta { if (request.isRelaxedMode()) { property = DtoReadSetColumnSkip.INSTANCE; } else { - throw new IllegalStateException("Unable to map DB column " + cols[i] + " to a property with a setter method on " + dtoType); + throw new IllegalStateException(unableToMapColumnMessage(cols[i])); } } setterProps[i] = property;