PersistentEntitiesResourceMapping.hasMappingFor(…) should lookup metadata on cache miss.

This commit is contained in:
Oliver Drotbohm
2021-07-13 09:27:03 +02:00
parent c682ebbd1d
commit edba6ace12
2 changed files with 15 additions and 1 deletions

View File

@@ -133,7 +133,7 @@ public class PersistentEntitiesResourceMappings implements ResourceMappings {
*/
@Override
public boolean hasMappingFor(Class<?> type) {
return cache.get(type) != null;
return getMappingMetadataFor(type) != null;
}
/*

View File

@@ -39,4 +39,18 @@ public class PersistentEntitiesResourceMappingsUnitTests {
assertThat(mappings.getMetadataFor(String.class)).isNull();
assertThat(mappings.hasMappingFor(String.class)).isFalse();
}
@Test // GH-2033
public void transparentlyAddsValueToCacheOnHasMappingRequests() {
KeyValueMappingContext<?, ?> context = new KeyValueMappingContext<>();
context.getPersistentEntity(Sample.class);
PersistentEntitiesResourceMappings mappings = new PersistentEntitiesResourceMappings(
PersistentEntities.of(context));
assertThat(mappings.hasMappingFor(Sample.class)).isTrue();
}
class Sample {}
}