Fix author-id publications search.
This commit is contained in:
@@ -9,6 +9,7 @@ import org.codiki.infrastructure.publication.model.PublicationSearchJpaField;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import static jakarta.persistence.criteria.JoinType.LEFT;
|
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 static org.codiki.infrastructure.publication.model.PublicationSearchJpaField.AUTHOR_PSEUDO;
|
||||||
|
|
||||||
import jakarta.persistence.criteria.CriteriaBuilder;
|
import jakarta.persistence.criteria.CriteriaBuilder;
|
||||||
@@ -53,9 +54,13 @@ public class PublicationPredicateMapper {
|
|||||||
|
|
||||||
From<?, ?> from = fromPublication;
|
From<?, ?> from = fromPublication;
|
||||||
String attributeName = searchField.getFieldName();
|
String attributeName = searchField.getFieldName();
|
||||||
if (searchField == AUTHOR_PSEUDO) {
|
if (List.of(AUTHOR_PSEUDO, AUTHOR_ID).contains(searchField)) {
|
||||||
from = fromPublication.join("author", LEFT);
|
from = fromPublication.join("author", LEFT);
|
||||||
attributeName = "pseudo";
|
attributeName = switch(searchField) {
|
||||||
|
case AUTHOR_ID -> "id";
|
||||||
|
case AUTHOR_PSEUDO -> "pseudo";
|
||||||
|
default -> null;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value instanceof UUID) {
|
if (value instanceof UUID) {
|
||||||
|
|||||||
Reference in New Issue
Block a user