Skip to content

Commit

Permalink
Add lower in operator to enable searching by lower collection values
Browse files Browse the repository at this point in the history
  • Loading branch information
agrancaric committed Jan 17, 2025
1 parent 8ca82bb commit 4d9205b
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import jakarta.persistence.criteria.Path;
import jakarta.persistence.criteria.Predicate;
import java.util.Collection;
import java.util.Locale;
import java.util.Objects;

// TODO check if other operators are required
Expand Down Expand Up @@ -95,6 +96,17 @@ public Predicate asPredicate(CriteriaBuilder criteriaBuilder, Path<?> path, Obje

((Collection<?>) value).forEach(inClause::value);

return inClause;
}
},

LOWER_IN {
@Override
public Predicate asPredicate(CriteriaBuilder criteriaBuilder, Path<?> path, Object value) {
CriteriaBuilder.In<String> inClause = criteriaBuilder.in(criteriaBuilder.lower((Expression<String>) path));

((Collection<?>) value).forEach(item -> inClause.value(((String) item).toLowerCase(Locale.ROOT)));

return inClause;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -601,6 +601,24 @@ void shouldSupportSearchingByPropertyList() {
assertThat(results).hasSize(2);
}

@Test
void shouldSupportSearchingByPropertyListUsingLowerOperator() {
// given
TestEntitySearchRequest request = new TestEntitySearchRequest(null);
request.setNameSearchList(List.of("firsT1", "First2"));

SearchConfiguration<TestEntity, TestEntity, TestEntitySearchRequest> searchConfiguration = SearchConfiguration.<TestEntity, TestEntity, TestEntitySearchRequest>builder()
.searchOperatorOverrideList(List.of(SearchOperatorOverride.forPath("name", DefaultSearchOperator.LOWER_IN)))
.build();


// when
List<TestEntity> results = executeQuery(request, searchConfiguration);

// then
assertThat(results).hasSize(2);
}

@Test
void shouldIgnoreEmptyCollectionWhenSearching() {
// given
Expand Down

0 comments on commit 4d9205b

Please sign in to comment.