From e50758c34dd0f8cc2ac215fbeca74c5c139a38ab Mon Sep 17 00:00:00 2001 From: Simon Cardaire Date: Thu, 1 Feb 2024 17:56:17 +0100 Subject: [PATCH] bug fix : filter associationsFields and ignoredFields when exported annotation is set to false --- .../core/utils/SpringDocDataRestUtils.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocDataRestUtils.java b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocDataRestUtils.java index b878c64f4..d4da7a79c 100644 --- a/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocDataRestUtils.java +++ b/springdoc-openapi-starter-common/src/main/java/org/springdoc/core/utils/SpringDocDataRestUtils.java @@ -56,6 +56,7 @@ import org.springframework.data.mapping.SimpleAssociationHandler; import org.springframework.data.mapping.context.PersistentEntities; import org.springframework.data.rest.core.config.RepositoryRestConfiguration; +import org.springframework.data.rest.core.mapping.ResourceMapping; import org.springframework.data.rest.core.mapping.ResourceMappings; import org.springframework.data.rest.core.mapping.ResourceMetadata; import org.springframework.data.rest.webmvc.RestMediaTypes; @@ -417,8 +418,11 @@ private List getAssociationsFields(ResourceMetadata List associationsFields = new ArrayList<>(); entity.doWithAssociations((SimpleAssociationHandler) association -> { PersistentProperty property = association.getInverse(); - String filedName = resourceMetadata.getMappingFor(property).getRel().value(); - associationsFields.add(filedName); + ResourceMapping mapping = resourceMetadata.getMappingFor(property); + if (mapping.isExported()) { + String filedName = mapping.getRel().value(); + associationsFields.add(filedName); + } }); return associationsFields; } @@ -438,8 +442,11 @@ private List getIgnoredFields(ResourceMetadata ignoredFields.add(idField); entity.doWithAssociations((SimpleAssociationHandler) association -> { PersistentProperty property = association.getInverse(); - String filedName = resourceMetadata.getMappingFor(property).getRel().value(); - ignoredFields.add(filedName); + ResourceMapping mapping = resourceMetadata.getMappingFor(property); + if (mapping.isExported()) { + String filedName = mapping.getRel().value(); + ignoredFields.add(filedName); + } }); } return ignoredFields;