1

Jhipster entity with filtering produce api with for example: http://localhost:8080/api/general-addresses?postalCode.contains=41

which execute sql: ............. postalCode LIKE '%41%'
http://localhost:8080/api/general-addresses?postalCode.contains=
which execute sql: ............. postalCode LIKE '%%'

Is it possible to make request with sql: LIKE '41%'  ?
admlz635
  • 1,001
  • 1
  • 9
  • 18
greenfly
  • 63
  • 1
  • 6

1 Answers1

1

You can achieve that by adding this value as new criteria and write custom specification. For example add criteria:

private String postalCodeLike;

Please note that I'm using String not StringFilter.

And add custom specification:

if (criteria.getPostalCodeLike() != null) {
      specification = specification.and((root, criteriaQuery, criteriaBuilder) ->
                    criteriaBuilder.like(criteriaBuilder.upper(root.join(FirstRelationedEntity_.fieldName, JoinType.INNER).join(SecondRelationedEntity_.fieldName, JoinType.INNER)
                 .get(Product_.postalCode)),  criteria.getPostalCodeLike().toUpperCase() + "%"));
}
Falcon
  • 338
  • 3
  • 9