diff --git a/spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContext.java b/spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContext.java
index 56fb375d55..e025340b9c 100644
--- a/spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContext.java
+++ b/spring-data-jpa/src/main/java/org/springframework/data/jpa/mapping/JpaMetamodelMappingContext.java
@@ -171,25 +171,26 @@ public boolean isMetamodelManagedType(Class<?> type) {
 		 */
 		@Nullable
 		private Metamodel getMetamodelFor(Class<?> type) {
-
-			for (Metamodel model : metamodels) {
-
-				try {
+			Metamodel currentModel = null;
+			try {
+				for (Metamodel model : metamodels) {
+					currentModel = model;
 					model.managedType(type);
 					return model;
-				} catch (IllegalArgumentException o_O) {
-
-					// Fall back to inspect *all* managed types manually as Metamodel.managedType(…) only
-					// returns for entities, embeddables and managed superclasses.
-
-					for (ManagedType<?> managedType : model.getManagedTypes()) {
+				}
+			} catch (IllegalArgumentException o_O) {
+				
+				// Fall back to inspect *all* managed types manually as Metamodel.managedType(…) only
+				// returns for entities, embeddables and managed superclasses.
+				
+				if (currentModel != null) {
+					for (ManagedType<?> managedType : currentModel.getManagedTypes()) {
 						if (type.equals(managedType.getJavaType())) {
-							return model;
+							return currentModel;
 						}
 					}
 				}
 			}
-
 			return null;
 		}
 	}