Skip to content

pageable sort ignoreCase and derived query feature ignoreCase are not in sync #3540

Open
@gbrehmer

Description

@gbrehmer

Pageable sort is using lower sql function (the variable name is misleading here):

Expression<String> upper = cb.lower((Expression<String>) expression);

Derived method functionality is using upper.

|`IgnoreCase`|`findByFirstnameIgnoreCase`|`… where UPPER(x.firstname) = UPPER(?1)`

So if you use both features, you have to create two db indexes :(
I know that there are several different features which are related to ignoreCase and it seems its hard to sync them all. What about make it configurable on all different places? Because a lot of projects are already using different parts of the features and already have created db indexes. Changes w/o backwards compatibility could produce high load on db servers in production.

the issue report is also related to the latest comments in #2420 which has made the latest changes in the QueryUtils handling and there its also mentioned, that the handling is still not in sync. But like stated above I would not prefer to sync all places now. Instead make it configurable and implement a migration path with next major version e.g. (but still with full control via configuration)

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions