From afd184f936bacf1ad4a61eed19e1d2242e291f5d Mon Sep 17 00:00:00 2001 From: Florian THIERRY Date: Fri, 30 Aug 2024 22:37:03 +0200 Subject: [PATCH] Fix author-id publications search. --- .../repository/PublicationPredicateMapper.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/codiki-infrastructure/src/main/java/org/codiki/infrastructure/publication/repository/PublicationPredicateMapper.java b/backend/codiki-infrastructure/src/main/java/org/codiki/infrastructure/publication/repository/PublicationPredicateMapper.java index cecda20..02dd506 100644 --- a/backend/codiki-infrastructure/src/main/java/org/codiki/infrastructure/publication/repository/PublicationPredicateMapper.java +++ b/backend/codiki-infrastructure/src/main/java/org/codiki/infrastructure/publication/repository/PublicationPredicateMapper.java @@ -9,6 +9,7 @@ import org.codiki.infrastructure.publication.model.PublicationSearchJpaField; import org.springframework.stereotype.Component; import static jakarta.persistence.criteria.JoinType.LEFT; +import static org.codiki.infrastructure.publication.model.PublicationSearchJpaField.AUTHOR_ID; import static org.codiki.infrastructure.publication.model.PublicationSearchJpaField.AUTHOR_PSEUDO; import jakarta.persistence.criteria.CriteriaBuilder; @@ -53,9 +54,13 @@ public class PublicationPredicateMapper { From from = fromPublication; String attributeName = searchField.getFieldName(); - if (searchField == AUTHOR_PSEUDO) { + if (List.of(AUTHOR_PSEUDO, AUTHOR_ID).contains(searchField)) { from = fromPublication.join("author", LEFT); - attributeName = "pseudo"; + attributeName = switch(searchField) { + case AUTHOR_ID -> "id"; + case AUTHOR_PSEUDO -> "pseudo"; + default -> null; + }; } if (value instanceof UUID) {