Skip to content

Commit c3e0264

Browse files
committed
PersistentEntitiesResourceMapping.hasMappingFor(…) should lookup metadata on cache miss.
1 parent 659a502 commit c3e0264

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

spring-data-rest-core/src/main/java/org/springframework/data/rest/core/mapping/PersistentEntitiesResourceMappings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public boolean exportsTopLevelResourceFor(String path) {
133133
*/
134134
@Override
135135
public boolean hasMappingFor(Class<?> type) {
136-
return cache.get(type) != null;
136+
return getMappingMetadataFor(type) != null;
137137
}
138138

139139
/*

spring-data-rest-core/src/test/java/org/springframework/data/rest/core/mapping/PersistentEntitiesResourceMappingsUnitTests.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,18 @@ public void doesNotConsiderCachedNullValuesToIndicateMappingAvailable() {
3939
assertThat(mappings.getMetadataFor(String.class)).isNull();
4040
assertThat(mappings.hasMappingFor(String.class)).isFalse();
4141
}
42+
43+
@Test // GH-2033
44+
public void transparentlyAddsValueToCacheOnHasMappingRequests() {
45+
46+
KeyValueMappingContext<?, ?> context = new KeyValueMappingContext<>();
47+
context.getPersistentEntity(Sample.class);
48+
49+
PersistentEntitiesResourceMappings mappings = new PersistentEntitiesResourceMappings(
50+
PersistentEntities.of(context));
51+
52+
assertThat(mappings.hasMappingFor(Sample.class)).isTrue();
53+
}
54+
55+
class Sample {}
4256
}

0 commit comments

Comments
 (0)