@@ -296,7 +296,10 @@ private Type getTypeForWildcardType(RequestMethod requestMethod, DataRestReposit
296296 ParameterizedType wildcardTypeUpperBound = (ParameterizedType ) wildcardType .getUpperBounds ()[0 ];
297297 if (RepresentationModel .class .equals (wildcardTypeUpperBound .getRawType ())) {
298298 Class <?> type = findType (requestMethod , dataRestRepository );
299- return resolveGenericType (ResponseEntity .class , type , returnedEntityType );
299+ if (MapModel .class .equals (type ))
300+ return ResolvableType .forClassWithGenerics (ResponseEntity .class , type ).getType ();
301+ else
302+ return resolveGenericType (ResponseEntity .class , type , returnedEntityType );
300303 }
301304 }
302305 return null ;
@@ -316,7 +319,10 @@ private Type getTypeForParameterizedType(RequestMethod requestMethod, DataRestRe
316319 Class <?> rawType = ResolvableType .forType (parameterizedType1 .getRawType ()).getRawClass ();
317320 if (rawType != null && rawType .isAssignableFrom (RepresentationModel .class )) {
318321 Class <?> type = findType (requestMethod , dataRestRepository );
319- return resolveGenericType (ResponseEntity .class , type , returnedEntityType );
322+ if (MapModel .class .equals (type ))
323+ return ResolvableType .forClassWithGenerics (ResponseEntity .class , type ).getType ();
324+ else
325+ return resolveGenericType (ResponseEntity .class , type , returnedEntityType );
320326 }
321327 else if (EntityModel .class .equals (parameterizedType1 .getRawType ())) {
322328 return resolveGenericType (ResponseEntity .class , EntityModel .class , returnedEntityType );
0 commit comments