diff --git a/querydsl-core/src/main/java/com/querydsl/core/types/QBean.java b/querydsl-core/src/main/java/com/querydsl/core/types/QBean.java index e03b1cabc..17275b672 100644 --- a/querydsl-core/src/main/java/com/querydsl/core/types/QBean.java +++ b/querydsl-core/src/main/java/com/querydsl/core/types/QBean.java @@ -86,6 +86,10 @@ public class QBean extends FactoryExpressionBase { return cl.isPrimitive() ? Primitives.wrap(cl) : cl; } + private static boolean isAssignableFrom(Class cl1, Class cl2) { + return normalize(cl1).isAssignableFrom(normalize(cl2)); + } + private final ImmutableMap> bindings; private final List fields; @@ -156,7 +160,7 @@ public class QBean extends FactoryExpressionBase { try { field = beanType.getDeclaredField(property); field.setAccessible(true); - if (!normalize(field.getType()).isAssignableFrom(expr.getType())) { + if (!isAssignableFrom(field.getType(), expr.getType())) { typeMismatch(field.getType(), expr); } beanType = Object.class; @@ -186,7 +190,7 @@ public class QBean extends FactoryExpressionBase { for (PropertyDescriptor prop : propertyDescriptors) { if (prop.getName().equals(property)) { setter = prop.getWriteMethod(); - if (!normalize(prop.getPropertyType()).isAssignableFrom(expr.getType())) { + if (!isAssignableFrom(prop.getPropertyType(), expr.getType())) { typeMismatch(prop.getPropertyType(), expr); } break;