diff --git a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/instantiation/internal/DynamicInstantiationAssemblerInjectionImpl.java b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/instantiation/internal/DynamicInstantiationAssemblerInjectionImpl.java index c289576859..8df680784c 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/results/graph/instantiation/internal/DynamicInstantiationAssemblerInjectionImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/results/graph/instantiation/internal/DynamicInstantiationAssemblerInjectionImpl.java @@ -95,7 +95,7 @@ public DynamicInstantiationAssemblerInjectionImpl( private Field findField(Class declaringClass, String name, Class javaType) { try { - Field field = declaringClass.getDeclaredField( name ); + final Field field = declaringClass.getDeclaredField( name ); // field should never be null if ( Compatibility.areAssignmentCompatible( field.getType(), javaType ) ) { field.setAccessible( true ); @@ -103,6 +103,9 @@ private Field findField(Class declaringClass, String name, Class javaType) } } catch (NoSuchFieldException ignore) { + if ( declaringClass.getSuperclass() != null ) { + return findField( declaringClass.getSuperclass(), name, javaType ); + } } return null;