diff --git a/hibernate-core/src/main/java/org/hibernate/internal/util/ReflectHelper.java b/hibernate-core/src/main/java/org/hibernate/internal/util/ReflectHelper.java index d080f9f0ae..d3dcca808d 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/util/ReflectHelper.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/util/ReflectHelper.java @@ -386,13 +386,21 @@ public final class ReflectHelper { } try { - return clazz.getDeclaredField( propertyName ); + Field field = clazz.getDeclaredField( propertyName ); + if ( !isStaticField( field ) ) { + return field; + } + return locateField( clazz.getSuperclass(), propertyName ); } catch ( NoSuchFieldException nsfe ) { return locateField( clazz.getSuperclass(), propertyName ); } } + private static boolean isStaticField(Field field) { + return field != null && ( field.getModifiers() & Modifier.STATIC ) == Modifier.STATIC; + } + public static Method findGetterMethod(Class containerClass, String propertyName) { Class checkClass = containerClass; Method getter = null;